使用 C#,我可以使用 Excel 互操作来读取单元格范围。但它很难与美元值(value)和百分比保持一致。所以我正在尝试 EEPLus。
FileInfo newFile = new FileInfo(@excelFilePath);
ExcelPackage pck = new ExcelPackage(newFile);
var Summary = workbook1.Worksheets[1];
然后使用以下内容
Convert.ToString(Summary.Cells["I35"].Value);
我得到了一个不错的值(value)。
但是我想做的是以下事情
Summary.Cells["E29:P32"].Value
并将其放入数据表中。有一个用于 ImportDataTable 的方法,但它从数据表移动到 Excel。对于 Excel 到数据表是否存在类似简单的东西?
干杯。
最佳答案
没有内置方法,但你可以尝试这样的方法:
var range = summary.Cells["E6:G7"];
DataTable tbl = GetDataTableFromRange(range);
和 GetDataTableFromRange 方法:
public static DataTable GetDataTableFromRange(ExcelRange range)
{
DataTable tbl = new DataTable();
tbl.Columns.Add("Column1");
tbl.Columns.Add("Column2");
tbl.Columns.Add("Column3");
int dataTableColumn = 0;
DataRow newRow = null;
int currRow = -1;
foreach (var item in range)
{
if (currRow != item.Start.Row)
{
newRow = tbl.NewRow();
tbl.Rows.Add(newRow);
dataTableColumn = 0;
currRow = item.Start.Row;
}
newRow[dataTableColumn] = item.Value.ToString();
dataTableColumn++;
}
return tbl;
}
关于c# Excelpackage 将单元格范围读取到数据表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16649929/