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; }