comment obtenir le nombre de lignes EPPlus OpenXML (c #)
Question
Je l'ai cherché et j'ai trouvé le lien C # EPPlus OpenXML count lignes
int iRowCount = currentWorksheet.Dimension.End.Row - currentWorksheet.Dimension.Start.Row;
Mais cela donne une valeur de 4721 comme compte.Il donne le nombre de lignes entier, comment puis-je obtenir le nombre de lignes de lignes qui ont une valeur.Quelque chose comme UsedRange.
La solution
Vous pouvez obtenir le décompte par workBook.Worksheets.Count
Autres conseils
La réponse réelle pour renvoyer le nombre de lignes et de colonnes de la plage utilisée (la dimension) d'une feuille est ...
int iColCnt = Worksheet.Dimension.End.Column
int iRowCnt = Worksheet.Dimension.End.Row
Mais vous devez tester si Worksheet.Dimension est nul car pour les nouvelles feuilles de calcul ou les feuilles de calcul vides, la propriété Dimension sera nulle.
Les cellules vides d'une feuille de calcul peuvent toujours contenir une mise en forme, ce qui les rend comptées dans la feuille Dimension:
Les cellules vides peuvent être effacées en suivant les étapes suivantes: http://office.microsoft.com/en-au/excel-help/locate-and-reset-the-last-cell-on-a-worksheet-HA010218871.aspx
J'ai écrit cette fonction pour obtenir la dernière ligne contenant du texte:
int GetLastUsedRow(ExcelWorksheet sheet) {
var row = sheet.Dimension.End.Row;
while(row >= 1) {
var range = sheet.Cells[row, 1, row, sheet.Dimension.End.Column];
if(range.Any(c => !string.IsNullOrEmpty(c.Text))) {
break;
}
row--;
}
return row;
}
Il existe un moyen d'obtenir les cellules qui n'ont aucune valeur en utilisant la méthode Where.Nous pouvons l'utiliser pour trouver la toute dernière cellule (et sa ligne dans ce cas) d'une feuille de calcul, ou d'une plage.
int lastRow = sheet.Cells.Where(cell => !cell.Value.ToString().Equals("")).Last().End.Row;
À propos de la méthode Where: https://msdn.microsoft.com/en-us/library/bb534803 (v= vs.110) .aspx? cs-save-lang= 1 &cs-lang= csharp # code-snippet-1