gpt4 book ai didi

c# - 下载 Excel 文件

转载 作者:太空狗 更新时间:2023-10-30 00:31:17 24 4
gpt4 key购买 nike

我之前问过这个问题,但在启动文件下载时仍然遇到困难。

var fileName = "ExcelData.xlsx";
var file = new FileInfo(fileName);
using (var package = new OfficeOpenXml.ExcelPackage(file))
{
var worksheet = package.Workbook.Worksheets.FirstOrDefault(x => x.Name == "Employee Data");
if (package.Workbook.Worksheets.FirstOrDefault(x => x.Name == "Employee Data") == null)
{
worksheet = package.Workbook.Worksheets.Add("Employee Data");
}
else
{
package.Workbook.Worksheets.Delete(1);
worksheet = package.Workbook.Worksheets.Add("Employee Data");
}
worksheet.Cells[1, 1].Value = "Date start";
worksheet.Cells[1, 2].Value = "Name";

var rowCounter = 2;
foreach (var v in users)
{
string dt = v.DateAdded.ToString();
worksheet.Cells[rowCounter, 1].Value = dt;
worksheet.Cells[rowCounter, 2].Value = v.Name;
rowCounter++;
}
package.Workbook.Properties.Title = "Employee Data";

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.Buffer = true;
response.Charset = "";
response.ContentType = "application/vnd.openxmlformats- officedocument.spreadsheetml.sheet";
response.AddHeader("content-disposition", "attachment;filename=ExcelData.xlsx");
response.BinaryWrite(package.GetAsByteArray());
}

目前没有错误发生,但也没有触发下载。如何触发下载以便将生成的文件保存到默认下载文件夹

最佳答案

为什么不返回一个 FileContentResult

由于您使用的 Excel 库可以将工作表作为字节数组返回,因此这可能适合您。

在您的 Controller 中,您可以像这样返回 FileContentResult:

return File(package.GetAsByteArray(), "application/xlsx", "YourReportName.xlsx");

所以你可以从你的代码中删除这个 block :

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.Buffer = true;
response.Charset = "";
response.ContentType = "application/vnd.openxmlformats- officedocument.spreadsheetml.sheet";
response.AddHeader("content-disposition", "attachment;filename=ExcelData.xlsx");
response.BinaryWrite(package.GetAsByteArray());

然后如上所示返回文件。

请注意,您必须为 System.Web.Mvc 添加一个 using 语句到您的 Controller 。

关于c# - 下载 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28066181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com