С# EPPlus Количество строк в OpenXML

С EPPlus и OpenXML кто-нибудь знает синтаксис о том, как подсчитывать строки?

Скажите, что мой рабочий лист называется "рабочий лист"

int numberRows = worksheet.rows.count()? или worksheet.rows.dimension

Я определенно заинтересован в ответе, но как найти ответ было бы здорово, например, "Перейти к определению" и искать то или это и т.д.

Ответ 1

С рабочим worksheet, называемым worksheet, worksheet.Dimension.Start.Row и worksheet.Dimension.End.Row должны предоставить вам необходимую информацию.

worksheet.Dimension.Address предоставит вам строку, содержащую размеры листа в традиционном формате диапазона Excel (например, "A1: I5" для строк 1-5, столбцы 1-9).

Доступен файл документации. Во многих случаях может быть так же быстро поиграться с библиотекой и найти ответ таким образом. EPPlus, кажется, хорошо спроектирован - по крайней мере, все выглядит логично.

Ответ 2

Спасибо за подсказку 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;
    }

Ответ 3

Я работаю с версией 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

Довольно легко с:

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