c#Excelpackage读取单元格范围到一个数据表
使用C#我可以设法使用Excel互操作来读取单元格的范围。 但是在保持与美元价值和百分比一致方面存在困难。 所以我尝试了EEPLus。
FileInfo newFile = new FileInfo(@excelFilePath); ExcelPackage pck = new ExcelPackage(newFile); var Summary = workbook1.Worksheets[1];
然后使用以下
Convert.ToString(Summary.Cells["I35"].Value);
我得到一个体面的价值。
但是,我想要做的是以下几点
Summary.Cells["E29:P32"].Value
并把它放到一个数据表中。 有一个ImportDataTable的方法,但是它从datatable移动到excel。 excel到datatable是否有类似的简单存在?
干杯。
没有内置的方法,但你可以尝试这样的事情:
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; }