当保存文档时,EPPlus抛出“给定的键不在字典中”

我在一个ASP.Net MVC应用程序中使用EPPlus和C#来从存储系统中读取一个excel文档。 它作为一个字节数组(byte [])返回给方法。 我将字节数组转换为stream,然后转换为ExcelPackage并修改现有工作表上的单元格。

当我将ExcelPackage转换回stream时,作为FileStreamResult被提供给调用浏览器。 当我执行行MemoryStream ms = new MemoryStream(excel.GetAsByteArray()); 我得到了上面引用的exception。

public ActionResult Export(string id) { // Get the Excel document from storage MemoryStream ohDoc = new MemoryStream(); ohDoc.Write(doc.data, 0, doc.data.Length); ohDoc.Position = 0; ExcelPackage excel = new ExcelPackage(ohDoc); var workBook = excel.Workbook; var bidInfo = excel.Workbook.Worksheets["BID INFO"]; var recap = excel.Workbook.Worksheets["RECAP"]; // Modify the worksheets ... MemoryStream ms = new MemoryStream(excel.GetAsByteArray()); ms.Position = 0; FileStreamResult fileStreamResult = new FileStreamResult(ms, doc.MIMEType); fileStreamResult.FileDownloadName = doc.FileName; return fileStreamResult; } } 

我花了几个小时阅读谷歌和堆栈溢出,一直没能find答案。

当我将EPPlus库从4.1.0降级到3.1.3时,它开始正常工作。