无法使用EPPlus删除工作表

时间:2014-03-14 21:03:50

标签: c# excel epplus

我正在使用此代码:

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创建了这个工作表,现在我想删除它。

1 个答案:

答案 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的最新可用稳定版本,如果对您没有帮助,请发布适用于最新版本的其他详细信息。