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

Waq*_*Ali 10 c# asp.net excel epplus

我正在使用EPPlus库创建一个Excel文件.当我创建文件并打开文件时,以下弹出消息显示:

我们发现"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());
}
Run Code Online (Sandbox Code Playgroud)

我的代码中是否存在问题或者这是Excel问题?

Ads*_*Ads 24

一开始,您需要添加:

Response.Clear();
Run Code Online (Sandbox Code Playgroud)

然后在最后添加一个

Response.End();
Run Code Online (Sandbox Code Playgroud)


tse*_*sky 17

在我的情况下,问题出在呼唤

package.Save();
Run Code Online (Sandbox Code Playgroud)

和使用

Response.BinaryWrite(package.GetAsByteArray());
Run Code Online (Sandbox Code Playgroud)

同时.

当你调用package.GetAsByteArray()时,它会在内部执行以下操作:

this.Workbook.Save();
this._package.Close();
this._package.Save(this._stream);
Run Code Online (Sandbox Code Playgroud)

因此,在Excel中打开时,调用package.Save两次会导致此错误.