Excel 在 MVC 中导出返回两个文件
Excel export returning two files in MVC
我正在尝试将一些数据导出到 excel 并通过浏览器下载文件。我有一个方法可以创建一个活动工作簿,该工作簿 returns 一个字节数组,如下所示:
byte[] doc = be.GetActiveWorkbook(excelApp);
GetActiveWorkBook 方法如下所示:
public byte[] GetActiveWorkbook(Application app)
{
string path = Path.GetTempFileName();
try
{
app.ActiveWorkbook.SaveCopyAs(path);
return File.ReadAllBytes(path);
}
finally
{
if (File.Exists(path))
File.Delete(path);
}
}
最后返回的文件是这样的:
var file = File(doc, "application/vnd.ms-excel");
file.FileDownloadName = filename + " " + id + ".xlsx";
return file;
excel 文件确实下载到浏览器中,但似乎后台仍有进程在运行,即使我关闭了桌面上的 excel 文件。为什么是这样?
Excel Interop 是正确处理的噩梦。可能值得在您发布的方法之外检查您的代码,以了解您如何清理传入的 Excel 应用程序:
How do I properly clean up Excel interop objects?
我正在尝试将一些数据导出到 excel 并通过浏览器下载文件。我有一个方法可以创建一个活动工作簿,该工作簿 returns 一个字节数组,如下所示:
byte[] doc = be.GetActiveWorkbook(excelApp);
GetActiveWorkBook 方法如下所示:
public byte[] GetActiveWorkbook(Application app)
{
string path = Path.GetTempFileName();
try
{
app.ActiveWorkbook.SaveCopyAs(path);
return File.ReadAllBytes(path);
}
finally
{
if (File.Exists(path))
File.Delete(path);
}
}
最后返回的文件是这样的:
var file = File(doc, "application/vnd.ms-excel");
file.FileDownloadName = filename + " " + id + ".xlsx";
return file;
excel 文件确实下载到浏览器中,但似乎后台仍有进程在运行,即使我关闭了桌面上的 excel 文件。为什么是这样?
Excel Interop 是正确处理的噩梦。可能值得在您发布的方法之外检查您的代码,以了解您如何清理传入的 Excel 应用程序:
How do I properly clean up Excel interop objects?