Avec EPPlus et OpenXML, est-ce que quelqu'un connaît la syntaxe sur la manière de compter les lignes?
Dites que ma feuille de travail s'appelle "feuille de travail"
int numberRows = worksheet.rows.count()
? ou worksheet.rows.dimension
La réponse m’intéresse certes, mais il serait bien de trouver la réponse, par exemple «Aller à la définition» et de rechercher ceci ou cela, etc.
Avec un objet de feuille de calcul appelé 'feuille de travail', worksheet.Dimension.Start.Row et worksheet.Dimension.End.Row devraient vous fournir les informations dont vous avez besoin.
worksheet.Dimension.Address vous donnera une chaîne contenant les dimensions de la feuille de calcul au format de plage Excel traditionnel (par exemple, 'A1: I5' pour les lignes 1 à 5, les colonnes 1 à 9).
Il existe un fichier de documentation disponible . Dans de nombreux cas, il peut être aussi rapide de jouer avec la bibliothèque et de trouver la réponse de cette façon. EPPlus semble être bien conçu - tout semble avoir un nom logique, du moins.
Merci pour ce conseil Quppa. Je l'ai utilisé dans mon offre pour renseigner un DataTable à partir d'une feuille de calcul de classeur, comme ci-dessous:
/// <summary>
/// Converts a Worksheet to a DataTable
/// </summary>
/// <param name="worksheet"></param>
/// <returns></returns>
private static DataTable WorksheetToDataTable(ExcelWorksheet worksheet)
{
// Vars
var dt = new DataTable();
var rowCnt = worksheet.Dimension.End.Row;
var colCnt = worksheet.Dimension.End.Column + 1;
// Loop through Columns
for (var c = 1; c < colCnt; c++ )
{
// Add Column
dt.Columns.Add(new DataColumn());
// Loop through Rows
for(var r = 1; r < rowCnt; r++ )
{
// Add Row
if (dt.Rows.Count < (rowCnt-1)) dt.Rows.Add(dt.NewRow());
// Populate Row
dt.Rows[r - 1][c - 1] = worksheet.Cells[r, c];
}
}
// Return
return dt;
}
Je travaille avec la version 4.1 et il semblerait qu'ils aient ajouté quelques propriétés (mentionnées dans les commentaires des réponses précédentes) pour faciliter cela.
string Filepath = "c:\excelfile.xlsx";
FileInfo importFileInfo = new FileInfo(FilePath);
using(var excelPackage = new ExcelPackage(importFileInfo))
{
ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets[1];
int rowCount = worksheet.Dimension.Rows;
int colCount = worksheet.Dimension.Columns;
}
Assez facile avec:
private int GetDimensionRows(ExcelWorksheet sheet)
{
var startRow = sheet.Dimension.Start.Row;
var endRow = sheet.Dimension.End.Row;
return endRow - startRow;
}