angularJS命中ASP.MVC控制器导出excel

时间:2018-04-18 06:01:43

标签: angularjs asp.net-mvc

我有一个MVC控制器来导出excel文件:

public ActionResult exportExcelBankData(BankDataViewModel viewModel) {

        List<BankDataViewModel> bankDatas = (List<BankDataViewModel>)Session["bankDatas"];
        bankDatas = bankDatas.OrderBy(x => x.completeLoading).ToList();

        using (var package = new ExcelPackage()) {
            var stream = new MemoryStream();
            string fileName = "bankData.xlsx";
            string contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

            //fill rows and columns

            package.SaveAs(stream);
            stream.Position = 0;
            return File(stream, contentType, fileName);
        }
    }

这里我的angularjs功能击中控制器

 labAnalysisService.exportExcel = function (val, obj) {
    return $http.get( val, //url to controller
      { params: obj, //parameter
        headers: { 'Accept': 'application/json' } 
      });
}

我仍然无法导出excel。

任何建议?

1 个答案:

答案 0 :(得分:0)

使用ajax调用返回的文件将不会被下载,您必须进行以下更改。 通过像这样的

这样的java脚本打开浏览器的新窗口来请求excel下载
         window.open(
        "Controller/Action?args=" + encodeURIComponent(val),
        "_blank");