c# Excelpackage 将单元格范围读取到数据表中

标签 c# excel epplus

使用 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/

相关文章:

alignment - EPPlus namedstyle horizo​​ntalAlignment

c# - 未创建控制台应用程序的设置文件

c# - 如何基于多个 IEnumerables 创建一个集合

c# - 如何根据光线转换的一侧获得正确的坐标?

python - pandas xlsxwriter,格式表标题 - 不是工作表标题

excel - 从具有不同字符长度的单元格中提取数字

excel - 逻辑解析 Excel 中的字符串以修剪附近的重复项

c# - 在 Epplus 中使用小计功能时,出现 "Excel found unreadable content in..."错误

c# - 计数子记录,如果为空则显示零

charts - 时间:2019-05-17 标签:c#chartepplusaxisreverseorder