如何在 dotnet 中使用 ClosedXML 库实现 EPPlus 迭代功能?

问题描述 投票:0回答:1

我有以下代码使用 EPPlus 库在 excel 工作表中迭代一个范围,现在我想使用 ClosedXML 库实现相同的功能:

 ExcelWorksheet workSheet = package.Workbook.Worksheets.First();
 DataTable table = new DataTable();
 foreach (var firstRowCell in workSheet.Cells[1, 1, 1, workSheet.Dimension.End.Column])
 {
     table.Columns.Add(firstRowCell.Text);
 }

我试过的:

 ExcelWorksheet workSheet = package.Workbook.Worksheets.First();
 DataTable table = new DataTable();
 foreach (var firstRowCell in workSheet.Range(1,1,LastRowUsed().RowNumber(),LastColumnUsed().ColumnNumber()))
 {
     table.Columns.Add(firstRowCell.Value.ToString());
 }

但是它抛出一个异常,即 foreach 无法迭代 IXLRange 类型变量,因为它没有任何 GetEnumerator 定义,那么如何解决这个问题?

c# .net excel epplus closedxml
1个回答
0
投票

使用

Cells()
属性迭代范围内的单元格(与您的原始代码相比,您应该也替换
LastRowUsed().RowNumber()
,或者这是故意的?):

ExcelWorksheet workSheet = package.Workbook.Worksheets.First();
DataTable table = new DataTable();
foreach (var firstRowCell in workSheet.Range(1,1,1,LastColumnUsed().ColumnNumber()).Cells())
{
    table.Columns.Add(firstRowCell.Value.ToString());
}
© www.soinside.com 2019 - 2024. All rights reserved.