C#EPPlus OpenXML计数行

时间:2011-01-23 22:56:01

标签: c# excel count openxml

使用EPPlus和OpenXML,是否有人知道如何计算行的语法?

说我的工作表名为“工作表”

int numberRows = worksheet.rows.count()?或worksheet.rows.dimension

我当然对答案很感兴趣,但如何找到答案会很酷,比如“去定义”并寻找这个或那个等等。

4 个答案:

答案 0 :(得分:72)

使用名为worksheet的工作表对象,worksheet.Dimension.Start.Rowworksheet.Dimension.End.Row应该为您提供所需的信息。

worksheet.Dimension.Address将为您提供一个字符串,其中包含传统Excel范围格式的工作表维度(例如,对于第1-5行,第1-9列,“A1:I5”)。

有一个documentation file available。在许多情况下,可以快速地使用库并以这种方式找到答案。 EPPlus似乎设计得很好 - 至少在一切看来都是逻辑命名的。

答案 1 :(得分:14)

感谢您的提示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;
    }

答案 2 :(得分: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;
}

答案 3 :(得分:1)

非常容易:

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