Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用EPPlus删除工作表_C#_Excel_Epplus - Fatal编程技术网

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呢?