С# 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;
}