这段代码来自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
inputStream.BaseStream.Flush()
和/或inputStream.BaseStream.Position = 0
会怎样? - Ernie S