2017-10-06 38 views
2

我必须读取Excel(.xlsx)文件。我正在使用OpenXML NuGet pkg。 我想获得范围(xlRange),所以我可以从特定的单元格中获取数据。但没有获得成功。此代码在控制台环境中创建。如何使用openxml和c获取excel表中的范围#

static void Main(string[] args) 
{  
    bool flagDataError = false; 
    string sDuplicateRows = string.Empty; 
    string sCreatedRows = string.Empty; 
    string sFileTypeError = string.Empty; 
    string filepath = @"C:\test.xlsx"; 
    var fileName = Path.GetFileName(filepath); 
    var fileExtension = Path.GetExtension(filepath); 
    if ((fileExtension != ".xlsx") && (fileExtension != ".xls")) 
     sFileTypeError = "Invalid file. \n\nPlease browse a correct Excel file to upload."; 
    else 
    {   
     using (SpreadsheetDocument doc = SpreadsheetDocument.Open(filepath, false)) 
     { 
      WorkbookPart workbookPart = doc.WorkbookPart; 
      WorksheetPart worksheetPart = workbookPart.WorksheetParts.First(); 
      SheetData sheetData = worksheetPart.Worksheet.Elements<SheetData>().First(); 


      List<AxisData> data = new List<AxisData>(); 
      for (int i = 5; i <= 16; i++) 
      { 
       for (int j = 2; j <= 13; j++) 
       { 
        AxisData axisDetails = new AxisData(); 
        axisDetails.ProductCode = "AXIS " + xlRange.Cells[i, 1].Value; 
        axisDetails.ContractPeriod = Convert.ToDateTime(xlRange.Cells[4, j].Value); 
        axisDetails.SettlePrice = Convert.ToDecimal(xlRange.Cells[i, j].Value); 
        axisDetails.EffectiveStartDate = efectiveStartDate; 
       } 
       } 
      } 
     } 
    } 
} 
} 
+0

你是什么意思 “没有得到成功” 是什么意思?你有错误吗?程序如何表现得不像你想要的那样?在描述你的问题时要具体。此外,您提供的代码与花括号不匹配。 – mason

回答

0
IEnumerable<Row> ShRows = sheetData.Elements<Row>(); 

var _RCount = SHRows.Count(); 
相关问题