无法使用 EPPlus 删除工作表

c2s*_*c2s 4 c# excel epplus

我正在使用这段代码:

ExcelPackage pck = new ExcelPackage(newFile);

var wk = pck.Workbook.Worksheets.SingleOrDefault(x => x.Name == "Content");

pck.Workbook.Worksheets.Delete(wk);
Run Code Online (Sandbox Code Playgroud)

但在删除中它给了我“IndexOutOfRangeException”,但我试图从对象中删除,我尝试按索引“1”删除,我只有两个工作表和相同的异常。文件和工作表不为空,但是当我以任何方式执行删除时,我收到“IndexOutOfRangeException”。

发生了什么?

注意:我也从 ExcelPackage 创建了此工作表,现在我想删除它。

Dei*_*lan 5

看起来您遇到了一些临时错误/问题,但已修复。从 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();
}
Run Code Online (Sandbox Code Playgroud)

尝试更新到 EpPlus 的最新可用稳定版本,如果对您没有帮助,请发布适用于最新版本的其他详细信息。