javascript - 如何使用 Angular JS 下载 Excel

标签 javascript angularjs spring-restcontroller alasql filesaver.js

我的 Java REST 服务(POST 调用)正在使用 hssfWorkbook 提供 excel 文件作为响应,并以 xls 格式返回 excel。

response.getOutputStream();
hssfWorkbook.write(out);

我已经尝试过 Filesaver,但它适用于 JSON 作为响应。我没有找到任何方法在 Angular JS 中实现 Excel 文件下载。请建议使用 Angular JS 的任何方法。

最佳答案

试试这个,它会起作用。

API

httpServletResponse.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
httpServletResponse.setHeader("Content-Disposition",
                        "attachment; filename=sample.xlsx");
workbook.write(httpServletResponse.getOutputStream());
workbook.close();
httpServletResponse.getOutputStream().close();

$http 调用

    $scope.download = function() {
           $http({
                url: '/download',
                method: "POST",
                data: $scope.pagination,
                headers: {
                    'Content-type': 'application/json'
                },
                responseType: 'arraybuffer'
            }).success(function(data, status, headers, config) {
                var blob = new Blob([data], {
                    type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
                });
                saveAs(blob, "Sales_Summary_Report.xls");
            }).error(function(data, status, headers, config) {

            });
    }

HTML

<button ng-click="download()"> Download Excel </button>

关于javascript - 如何使用 Angular JS 下载 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40304097/

相关文章:

php - 元编程到几种输出语言

javascript - 使用 System.js,为什么我对一个文件中的模块所做的更改会保留在另一个文件中?

java - 在没有无限递归的情况下将 @OneToMany 关系与 @RestController 结合使用的最佳实践是什么

javascript - 结束 &lt;/script&gt; 标签会破坏脚本

javascript - SHA256 使用 Filereader 问题以 Angular 6 散列大文件

javascript - 制作一个常规的 Angular 应用程序,一个模块化的 Angular 应用程序

angularjs - Angular 用户界面路由器禁用某些链接

javascript - 是否可以使用 for 循环进行 DRY Protractor 测试? *var coming undefined*

java - 使用 Spring @RestController 处理带 ZonedDateTime 参数的 HTTP GET

java - Spring REST GET 请求生成哈希值