我有以下代码使用 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 定义,那么如何解决这个问题?
使用
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());
}