web-dev-qa-db-ja.com

C#EPPlus OpenXMLは行をカウントします

EPPlusとOpenXMLを使用して、行のカウント方法に関する構文を知っている人はいますか?

私のワークシートは「ワークシート」と呼ばれます

int numberRows = worksheet.rows.count()?またはworksheet.rows.dimension

私は確かに答えに興味がありますが、答えを見つける方法は「定義に行く」のようにクールだろうし、これやあれなどを探します。

35
rd42

worksheetと呼ばれるワークシートオブジェクトを使用して、worksheet.Dimension.Start.Rowおよびworksheet.Dimension.End.Rowは、必要な情報を提供する必要があります。

worksheet.Dimension.Addressは、従来のExcel範囲形式でワークシートの寸法を含む文字列を提供します(たとえば、行1〜5、列1〜9の場合は「A1:I5」)。

ドキュメントファイルが利用可能 があります。多くの場合、ライブラリをいじってその方法で答えを見つけるのは同じくらい迅速かもしれません。 EPPlusはうまく設計されているようです-少なくともすべては論理的に命名されているようです。

72
Quppa

そのヒント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;
    }
14
Kwex

私はバージョン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;
}
4
Roland Schaer

とても簡単:

private int GetDimensionRows(ExcelWorksheet sheet)
{
    var startRow = sheet.Dimension.Start.Row;
    var endRow = sheet.Dimension.End.Row;
    return endRow - startRow;
}
1
SiL3NC3