gpt4 book ai didi

javascript - .NET C# 使用 ExcelPackage 通过 JS post 导出到 excel

转载 作者:行者123 更新时间:2023-11-30 15:44:50 25 4
gpt4 key购买 nike

我不确定我在这里遗漏了什么。我有一个按钮,单击该按钮时,我正在使用 javascript 调用 Controller 。该 Controller 应创建一个 excel 文件并将其返回给用户,使他们能够下载/保存该文件。我尝试了几种不同的方法,但无法让它发挥作用。这是我的 JavaScript 方面:

function exportList() {
var val = $("#team-dropdown").val();
const date = new Date().toISOString();
const param = {
"Date": date,
"GroupID": 1
}

$.ajax({
url: "@Url.Action("ExportToExcel", "Home")",
type: "POST",
data: param
});
}

这是我的服务器端:

public FileResult ExportToExcel(DateTime date, int groupID)
{
Load l = new Load();
List<Load> loadList = l.GetLoadsForGroup(date, groupID);

var fileDownloadName = "fileName.xlsx";
var contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

ExcelPackage pck = new ExcelPackage();
var ws = pck.Workbook.Worksheets.Add("New workbook");
ws.View.ShowGridLines = true;
ws.DefaultColWidth = 25;
ws.Cells[1, 1].Value = "Order #";

var currRow = 2;
foreach (var load in loadList)
{
ws.Cells[2, 2].Value = load.LoadNumber;
}



var fs = new MemoryStream();
pck.SaveAs(fs);
fs.Position = 0;
var fsr = new FileStreamResult(fs, contentType);
fsr.FileDownloadName = fileDownloadName;
return (fsr);
}

不确定最好的方法是什么。如果有更好的方法,请随时详细说明。

最佳答案

您的方法看起来不错。在那种情况下,您只需要使用 html form 来发布而不是使用 js 函数。或者,如果您想使用 ActionResult,您可以这样写:

public ActionResult ExportToExcel()
{
Load l = new Load();
List<Load> loadList = l.GetLoadsForGroup(date, groupID);

var fileDownloadName = "fileName.xlsx";
var contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

ExcelPackage pck = new ExcelPackage();
var ws = pck.Workbook.Worksheets.Add("New workbook");
ws.View.ShowGridLines = true;
ws.DefaultColWidth = 25;
ws.Cells[1, 1].Value = "Order #";

var currRow = 2;
foreach (var load in loadList)
{
ws.Cells[2, 2].Value = load.LoadNumber;
}

Response.Clear();
Response.ContentType = contentType;
Response.AddHeader("content-disposition", "attachment; filename=\"" + fileDownloadName + "\"");
Response.BinaryWrite(pck.GetAsByteArray());
Response.Flush();
Response.End();
return View();
}

并且您会得到与您的方法相同的结果。

关于javascript - .NET C# 使用 ExcelPackage 通过 JS post 导出到 excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40227681/

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