我正在使用此代码:
ExcelPackage pck = new ExcelPackage(newFile);
var wk = pck.Workbook.Worksheets.SingleOrDefault(x => x.Name == "Content");
pck.Workbook.Worksheets.Delete(wk);
但是在删除它给我“IndexOutOfRangeException”,但我试图从对象中删除,我试图通过索引“1”删除,我只有两个工作表,并且相同的异常。文件和工作表不是null,但是当我执行delete时,我收到“IndexOutOfRangeException”。
发生了什么事?
注意:我也从ExcelPackage创建了这个工作表,现在我想删除它。
答案 0 :(得分:1)
看起来你遇到了一些已经修复的临时错误/问题。从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的最新可用稳定版本,如果对您没有帮助,请发布适用于最新版本的其他详细信息。