Download Excel file via AJAX MVC

后端 未结 14 1950
说谎
说谎 2020-11-22 02:30

I have a large(ish) form in MVC.

I need to be able to generate an excel file containing data from a subset of that form.

The tricky bit is that this shouldn

14条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-11-22 03:07

      $.ajax({
        global: false,
        url: SitePath + "/User/ExportTeamMembersInExcel",
        "data": { 'UserName': UserName, 'RoleId': RoleId, UserIds: AppraseeId },
        "type": "POST",
        "dataType": "JSON",
       "success": function (result) {
            debugger
            var bytes = new Uint8Array(result.FileContents);
            var blob = new Blob([bytes], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" });
            var link = document.createElement('a');
            link.href = window.URL.createObjectURL(blob);
            link.download = "myFileName.xlsx";
            link.click();
          },
        "error": function () {
            alert("error");
        }
    })
    
    
    [HttpPost]
        public JsonResult ExportTeamMembersInExcel(string UserName, long? RoleId, string[] UserIds)
        {
            MemoryStream stream = new MemoryStream();
            FileContentResult robj;
            DataTable data = objuserservice.ExportTeamToExcel(UserName, RoleId, UserIds);
            using (XLWorkbook wb = new XLWorkbook())
            {
                wb.Worksheets.Add(data, "TeamMembers");
                using (stream)
                {
                    wb.SaveAs(stream);
                }
            }
            robj = File(stream.ToArray(), System.Net.Mime.MediaTypeNames.Application.Octet, "TeamMembers.xlsx");
            return Json(robj, JsonRequestBehavior.AllowGet);
        }
    

提交回复
热议问题