0
我在一個ASP.Net MVC應用程序中使用EPPlus和C#從存儲系統讀取一個excel文檔。它作爲一個字節數組(byte [])返回給方法。我將字節數組轉換爲流,然後轉換爲ExcelPackage並修改現有工作表上的單元格。EPPlus投擲「給定的密鑰不在字典中。」當保存文檔
當我將ExcelPackage轉換回流,作爲FileStreamResult被提供給調用瀏覽器。當我執行行MemoryStream ms = new MemoryStream(excel.GetAsByteArray());我得到上面引用的異常。
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;
}
}
我花了數小時閱讀谷歌和堆棧溢出,一直未能找到答案。
當您嘗試使用不存在的密鑰訪問某些內容時,會拋出此異常。我會從工作表開始。你確定這些表單存在嗎? – Kyle
是的,工作表確實存在。這是我檢查的第一件事。 :) –