EPPlus工作表总是在第一次尝试时抛出异常,然后在第二次尝试时工作

时间:2015-10-23 11:11:25

标签: c# asp.net-mvc excel epplus

这段代码来自MVC控制器中的一个更大的函数,其中发布了带有文件的表单。 inputStream来自上传的文件:

var excelFile = new ExcelPackage(inputStream.BaseStream);
ExcelWorksheet worksheet;
try
{
    worksheet = excelFile.Workbook.Worksheets["Products"];
}
catch (Exception)
{
    // Second time always works?
    worksheet = excelFile.Workbook.Worksheets["Products"];
}

首先尝试总是崩溃,然后第二次就会崩溃。我得到的例外是“已经添加了具有相同密钥的项目。”。第二次尝试永远不会失败。

当然这是正常工作的代码,但是人们可能会试着在我这里查看这个内容的乐趣;)

版本:

EPPlus.dll, v3.1.3.0

2 个答案:

答案 0 :(得分:1)

我今天遇到同样的问题。很沮丧!我甚至查看了EPPlus的源代码,看看发生了什么,但它并没有真正帮助。

我的问题最终是因为EPPlus正在阅读的电子表格是由LibreOffice Calc创建的.xlsx电子表格,而不是Microsoft Excel。尽管LibreOffice以正确的格式导出,并且电子表格可以在Excel中打开,但是EPPlus期待的东西丢失了。只要我从Excel而不是LibreOffice保存电子表格,就没有问题。

答案 1 :(得分:0)

我在4.5.3.2版本中遇到了同样的问题。 只需使用第二个通话时间即可克服。

相关问题