工作表位置超出范围。 连接已closures。 使用EPPLUS时

我试图打开一个XLSX文件作为模板(我甚至使用了一个空白的XLSX文件),使用EPPLUS 4.0.3。

如果我不打开模板文件(空白或真实的),只是创build一个新的工作簿,并创build工作表,它工作正常。 或者如果我打开模板文件,并创build一个新的工作表,那么它工作正常。 只有当我尝试访问模板中的第一张表格时,出现错误: 工作表位置超出范围。

像这样访问第一个工作表: workBook.Worksheets.First()

首先不再是一个定义。

所以我尝试访问第一个工作表的名字和这个方法workBook.Worksheets[1]使用0和1来尝试获取第一个工作表。

我的代码:

  var existingTemplate = new FileInfo(_ExcelTemplateFilePath); using (ExcelPackage p = new ExcelPackage(existingTemplate)) { // Get the work book in the file ExcelWorkbook workBook = p.Workbook; ExcelWorksheet ws = workBook.Worksheets[1]; // MY OTHER EXCEL CELL CODE HERE }} 

有谁知道如何访问第一张和Excel文件?

我能够通过名称来引用工作表而不是索引来解决这个问题。

 var oSheet = package.Workbook.Worksheets["My Worksheet Name"]; 

我只是遇到了同样的问题,问题在于EPPlus在具有命名范围的电子表格上扼stream圈。

以下是我所做的(使用LibreOffice Calc)来启用阅读电子表格:

  1. 创build电子表格的副本
  2. 在LibreOffice中打开
  3. 项目清单
  4. 点击左上angular的drodpwon来定义范围。 通常读“A1”
  5. select“pipe理名称”
  6. 突出显示整个列表
  7. 点击“删除”

完成这些步骤后,我保存/closures了电子表格,并可以使用EPPlus将其打开。

得到第一张表只是使用下面的代码

  var xlWorkbook = new ExcelPackage(new FileInfo(@"C:\ESD\EXCELDATAREADTEST.xlsx")); ExcelWorksheet workSheet = xlWorkbook.Workbook.Worksheets[1]; 

只要确保您指向您的工作簿的正确位置