C# 无法使用EPPlus删除工作表
我正在使用以下代码:C# 无法使用EPPlus删除工作表,c#,excel,epplus,C#,Excel,Epplus,我正在使用以下代码: ExcelPackage pck = new ExcelPackage(newFile); var wk = pck.Workbook.Worksheets.SingleOrDefault(x => x.Name == "Content"); pck.Workbook.Worksheets.Delete(wk); 但在delete中,它给了我“IndexOutOfRangeException”,但我试图从对象中删除,我试图通过索引“1”删除,我只有两个工作表,还
ExcelPackage pck = new ExcelPackage(newFile);
var wk = pck.Workbook.Worksheets.SingleOrDefault(x => x.Name == "Content");
pck.Workbook.Worksheets.Delete(wk);
但在delete中,它给了我“IndexOutOfRangeException”,但我试图从对象中删除,我试图通过索引“1”删除,我只有两个工作表,还有相同的异常。文件和工作表不是空的,但是当我以任何方式执行delete时,我收到“IndexOutOfRangeException”
发生了什么事
注意:我也从ExcelPackage创建了此工作表,现在我想将其删除。看起来您遇到了一些临时错误/问题,这些问题已经修复。从EpPlus 4.0.1.1开始,以下代码工作正常:
var workbookFileInfo = new FileInfo(@"Workbook.xlsx");
using (var excelPackage = new ExcelPackage(workbookFileInfo))
{
excelPackage.Workbook.Worksheets.Add("Worksheet1");
excelPackage.Workbook.Worksheets.Add("Worksheet2");
excelPackage.Save();
}
using (var excelPackage = new ExcelPackage(workbookFileInfo))
{
var worksheet = excelPackage.Workbook.Worksheets.SingleOrDefault(x => x.Name == "Worksheet1");
excelPackage.Workbook.Worksheets.Delete(worksheet);
excelPackage.Save();
}
尝试更新到可用的最新稳定版本的EpPlus,如果对您没有帮助,请发布适用于最新版本的其他详细信息。您确定wk不为空吗?我对这一行代码有相同的例外:
while(wb.Worksheets.Count>0)wb.Worksheets.Delete(0)代码>顺便说一句,当我将代码更改为时,(wb.Worksheets.Count>0)wb.Worksheets.Delete(1)代码>,无异常发生。似乎索引是基于一的,而不是基于零的。您还没有添加任何名为“内容”的工作表,那么为什么wk不能为null呢?