我正在尝试使用EPPLUS 4.0.3打开XLSX文件作为模板(我甚至使用了空白的XLSX文件)。
如果我不打开模板文件(空白或真实的模板文件)并只创建一个新工作簿并创建一个工作表,它可以正常工作。或者如果我打开模板文件,并创建一个新的工作表,那么它工作正常。只有当我尝试访问模板中的 FIRST 表时,我才会收到错误: 工作表位置超出范围。
访问第一个工作表: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文件?
答案 0 :(得分:8)
我能够通过名称而不是索引来引用工作表来解决这个问题。
var oSheet = package.Workbook.Worksheets["My Worksheet Name"];
答案 1 :(得分:5)
获取第一张表只使用下面的代码
var xlWorkbook = new ExcelPackage(new FileInfo(@"C:\ESD\EXCELDATAREADTEST.xlsx"));
ExcelWorksheet workSheet = xlWorkbook.Workbook.Worksheets[1];
确保您指向工作簿的正确位置
答案 2 :(得分:0)
我遇到了同样的问题,麻烦的是EPPlus在带有命名范围的电子表格上窒息。
这是我用(使用LibreOffice Calc)启用阅读电子表格的方法:
完成这些步骤后,我保存/关闭了电子表格,并可以使用EPPlus打开它。
答案 3 :(得分:0)
我用过
var currentSheet = package.Workbook.Worksheets;
var workSheet = currentSheet.First();
这是因为工作表可能没有已知的名称,现在您对第一张工作表很感兴趣