. net c#导出到excel通过JS post使用ExcelPackage
.NET C# exporting to excel via JS post using ExcelPackage
我不知道我错过了什么。我有一个按钮,点击时,我用javascript调用控制器。该控制器应该创建一个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();
}
你会得到和你的方法相同的结果
相关文章:
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- Node.js - POST to iFrame?
- node js post request.body undefined
- 使用application/x-www-form-urlencoded使用node.js在post请求中发送数组
- 为什么Hapi.js POST处理程序返回空负载
- Sails.js POST路由没有
- Node.js POST请求,无重定向
- 如何使用上一次调用的数据进行第二次 JS .post 调用
- 节点 js POST mysite/uploads 404(未找到)上传到 Azure 时,但在本地工作
- Express.js post request "Origin null是不允许的"错误
- js post process: FXAA不能在启用SSAO的情况下工作
- . net c#导出到excel通过JS post使用ExcelPackage
- MYSQL + Node.JS Post Request Confusion
- require.js POST请求到spotify web api返回“解析json”错误
- 使用node.js POST数据
- 发送Js POST请求
- Node.JS post到JSON文件格式不正确
- PHP后端未接收backbone.js POST
- 快递.js POST 请求正文为空
- node.js POST中的多个POST参数,使用指针