EPPlusとOpenXMLを使用して、行のカウント方法に関する構文を知っている人はいますか?
私のワークシートは「ワークシート」と呼ばれます
int numberRows = worksheet.rows.count()
?またはworksheet.rows.dimension
私は確かに答えに興味がありますが、答えを見つける方法は「定義に行く」のようにクールだろうし、これやあれなどを探します。
worksheet
と呼ばれるワークシートオブジェクトを使用して、worksheet.Dimension.Start.Row
およびworksheet.Dimension.End.Row
は、必要な情報を提供する必要があります。
worksheet.Dimension.Address
は、従来のExcel範囲形式でワークシートの寸法を含む文字列を提供します(たとえば、行1〜5、列1〜9の場合は「A1:I5」)。
ドキュメントファイルが利用可能 があります。多くの場合、ライブラリをいじってその方法で答えを見つけるのは同じくらい迅速かもしれません。 EPPlusはうまく設計されているようです-少なくともすべては論理的に命名されているようです。
そのヒントQuppaをありがとう。以下のように、ワークブックスプレッドシートからDataTableにデータを入力するために、入札で使用しました。
/// <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;
}
私はバージョン4.1で作業していますが、これを簡単にするために、いくつかのプロパティ(以前の回答のコメントに記載されています)が追加されているようです。
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;
}
とても簡単:
private int GetDimensionRows(ExcelWorksheet sheet)
{
var startRow = sheet.Dimension.Start.Row;
var endRow = sheet.Dimension.End.Row;
return endRow - startRow;
}