打开使用EPPlus生成的Excel文件时显示错误对话框

我正在使用EPPlus库创build一个Excel文件。 当我创build文件并打开文件时,以下popup消息显示:

我们发现“ExcelDemo.xlsx”中的某些内容存在问题。 你想让我们尽可能地恢复吗? 如果您信任此工作簿的来源,请单击是

我正在使用以下代码

using (ExcelPackage pck = new ExcelPackage()) { //Create the worksheet ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo"); //Load the datatable into the sheet, starting from cell A1. Print the column names on row 1 ws.Cells[1, 2].Value = "Excel Download"; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment; filename=ExcelDemo.xlsx"); Response.BinaryWrite(pck.GetAsByteArray()); } 

在我的代码中是否有问题,或者这是一个Excel问题?

在开始时,你需要添加一个:

 Response.Clear(); 

然后在最后添加一个

 Response.End(); 

我会分享我的解决scheme。 我正在使用模板excel文件,然后从中创build新的excel。

接收到相同的错误。 我的代码是

  using (Stream newFileStream = File.Open(this.tempFilePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)) using (Stream originalFile = File.Open(this.initialFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (ExcelPackage excelPackage = new ExcelPackage(newFile, template)) { // ... Do work here } 

我不得不改变代码:

 FileInfo intialInfo = new FileInfo(this.initialFilePath); FileInfo tempFileInfo = new FileInfo(this.tempFilePath); using (ExcelPackage excelPackage = new ExcelPackage(tempFileInfo, intialInfo)) { //... Do work here } 

另外我正在使用ASP MVC和响应是:

 byte[] result = exporter.GetBytesFromGeneratedExcel(); return this.File(result, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Test.xlsx");