我尝试使用EPPLUS 4.0.3打开一个XLSX文件作为模板(我甚至使用了一个空白XLSX文件)。
如果我不打开模板文件(空白或真实的的),而只是创建一个新工作簿并创建一个工作表,它就可以正常工作。或者,如果我打开模板文件并创建一个新工作表,它就可以正常工作。只有当我尝试访问模板中的FIRST工作表时,我才得到错误:工作表位置超出范围。
访问第一个工作表,如下所示:workBook.Worksheets.First()
不工作。
第一不再是一个定义。
因此,我尝试按名称访问第一个工作表,并使用0和1通过workBook.Worksheets[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文件的第一个工作表?
7条答案
按热度按时间vshtjzan1#
我能够通过按名称而不是索引引用工作表来绕过这个问题。
2skhul332#
要获得第一张表,请使用以下代码
请确保指向工作簿的正确位置
llew8vvj3#
我刚刚遇到了同样的问题,麻烦的是EPPlus会在带有命名范围的电子表格上窒息。
下面是我所做的(使用LibreOffice Calc),以使阅读电子表格:
1.创建电子表格的副本
1.在LibreOffice中打开
1.列表项
1.单击左上角的下拉框定义范围。通常显示为"A1"
1.选择"管理姓名"
1.突出显示整个列表
1.点击"删除"
完成这些步骤后,我保存/关闭了电子表格,并能够用EPPlus打开它。
zzwlnbp84#
我以前
这是因为工作表可能没有已知名称,而现在您对第一个工作表感兴趣
gc0ot86w5#
您可以从零开始索引,它将工作。
Excel工作表ws =工作簿.工作表[0];
pbgvytdp6#
解决方案:这是因为您没有提供正确的excel文件路径,您已经调用或放置在**_ExcelTemplateFilePath参数中。要么你已经把你的文件在错误的目录和你正在调用从你想要的路径,但不幸的是没有。
1.如果您已将Excel文件放置在项目或解决方案的当前目录中,请参见示例(注:Vs studio的当前目录将始终为\bin\debug.netcoreapp**public static FileInfo getfile = new FileInfo(Directory.GetCurrentDirectory()+ @"\Login_Credentials. xlsx”);
1.如果您excel文件路径是静态且硬编码为e-g(@“F:\task1\TestTask\abc.xlsx”),则您的路径也必须以给定格式正确,然后您的文件才可访问。
fsi0uk1n7#
问题是文件类型不完全是EPPLUS所希望的。它打开xlsx,看到工作簿但看不到工作表。解决办法是保存为它想要的格式。