2017-06-22 1 views
0

je dois choisir une cellule spécifique dans mon fichier Excel via l'aide OpenXML:Comment obtenir une ligne spécifique par feuille de calcul et rowIndex dans le fichier excel

Worksheet workSheet = workSheetPart.Worksheet; 
Cell cell = GetCell(workSheet, "B", 2); 


private static Cell GetCell(Worksheet worksheet, 
    string columnName, uint rowIndex) 
    { 
     Row row = GetRow(worksheet, rowIndex); 

     if (row == null) 
      return null; 

     return row.Elements<Cell>().Where(c => string.Compare 
       (c.CellReference.Value, columnName + 
       rowIndex, true) == 0).First(); 
    } 

private static Row GetRow(Worksheet worksheet, uint rowIndex) 
    { 
     var test = worksheet.GetFirstChild<SheetData>(). 
      Elements<Row>().Where(r => r.RowIndex == rowIndex).First(); //Here is the problem. 

return worksheet.GetFirstChild<SheetData>(). 
      Elements<Row>().Where(r => r.RowIndex == rowIndex).First(); 
    } 

Quand je débogage ai remarqué que RowIndex est nulle, cette est à l'origine du problème, je suppose que dans la requête LINQ

Répondre

0

utilisation ElementAt ...

var test = worksheet.GetFirstChild<SheetData>().Elements<Row>().ElementAt(rowIndex);