使用EPPlus和OpenXML有人知道如何計算行的語法嗎?C#EPPlus OpenXML計數行
說我的工作表被稱爲 「工作表」
int numberRows = worksheet.rows.count()
?或worksheet.rows.dimension
我在回答肯定是有興趣的,但如何找到答案會很酷,像「去定義」,並期待這個或那個,等
使用EPPlus和OpenXML有人知道如何計算行的語法嗎?C#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')。
有一個documentation file available。在很多情況下,玩圖書館和以這種方式找到答案可能會很快。 EPPlus看起來設計得很好 - 至少所有東西都是按邏輯命名的。
感謝您的提示Quppa。我用它在我的出價來填充從工作簿電子表格如下數據表:
/// <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;
}
不錯的帖子.. +1 ..你碰巧在EPPlus上有什麼好的文檔嗎? – MacGyver 2012-02-13 21:57:10
我不這樣做,但下載中包含的示例很有幫助。 – rd42 2012-02-14 16:02:22
現在有更高效的方法來使用DImension中的「行」和「列」屬性。 – 2016-10-14 16:24:55