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



我有以下代码,使用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());
}

最新更新