我正在使用Shaman.EPPlus,它应该是与ASP.NET Core MVC兼容的EPPlus版本。
我正在尝试将对象集合导出为xlxs文件。
代码如下:

foreach(var client in clientsToExport)
{
    clientList.Add(new object[] { "FirstName", client.FirstName });
}

MemoryStream stream = new MemoryStream();
using (ExcelPackage pck = new ExcelPackage(stream))
{
    ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Clients");
    ws.Cells["A1"].LoadFromArrays(clientList);
    pck.Save();

    Response.Clear();
    Response.Headers.Add("content-disposition", "attachment;  filename=Clients.xlsx");
    Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    var bytes = pck.GetAsByteArray();
    Response.Body.WriteAsync(bytes, 0, bytes.Length);
}

似乎在调用GetAsByteArray方法时引发了包含消息“Par已经存在”的异常。



你知道我能检查什么吗?

最佳答案

问题是这些行:

pck.Save();
....
var bytes = pck.GetAsByteArray();

两次调用都将导致包裹被Epplus关闭。您不需要.Save调用,因为无论如何它将由.GetAsByteArray自动调用,因此只需删除第一行。

关于c# - Shaman.EPPlus + ASP.NET Core MVC-部分已存在异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40064880/

10-11 19:12