javascript - 从 Rest API 响应内容配置输出 [Object, Object] 下载 javascript 中的 excel 文件

标签 javascript angularjs excel download content-disposition

我想从我的 angularJs 代码下载一个 excel 文件。我向 Java Rest API 发出 http post 请求并返回带有 header 的文件 "Content-Disposition": "附件;文件名=\"new_excel_file.xlsx\""

Java代码

@Post 
@Path("/excel/trekResult")
@Produces("application/vnd.ms-excel")
public Response getResultsReport(@HeaderParam(Constants.ID) Long userId, @QueryParam(Constants.COMPANY_TREK_ID) Integer companyTrekId) {
String CONTENT_DESPOSITION = "Content-Disposition";
String CONTENT_ATTACHEMENT = "attachment; filename=\"new_excel_file.xlsx\"";

//Generates a excel file in local file system
File excelFile = misHelper.writeToFile(workBook, mis, userId, "trek-results");

return Response.ok().entity((Object)excelFile).
    header(CONTENT_DESPOSITION, CONTENT_ATTACHEMENT).build();

}

在 Javascript 方面

myService.exportResult($scope.companyTrek.id).then(function(result) {
  if(result !== undefined || result !== '') {
    var blob = new Blob([result], {
      type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
    });
    var objectUrl = URL.createObjectURL(blob);
    saveAs(blob, 'Trek-Results-'+fetchCurrentDate()+ '.xlsx');
  }
}

使用 FileSaver.js 保存文件。

输出文件是[Object, Object]

已测试本地生成的文件。

这里有一个类似的问题供引用,但对我没有帮助。

receive an excel file as response in javascript from a Rest service

最佳答案

我刚刚注意到 Java 服务器和 Angular 客户端的 Mime 类型不同。
link显示与电子表格相关的不同 MIME 类型。
尝试使它们保持一致,看看是否能解决问题。
还有this way没有坏人。

关于javascript - 从 Rest API 响应内容配置输出 [Object, Object] 下载 javascript 中的 excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29739865/

相关文章:

excel - 更改 Excel 工作表的所有单元格中的文本颜色

javascript - 如何使用 jinja 将 null 从 python 传递给 javascript

javascript - 如何按子对象值对对象的对象进行排序?

excel - SSIS在有数据时将列读取为NULL

angularjs - key 工具 : command not found

angularjs - 具有不同图像大小或高度的 ionic slider

vba - 创建宏以向上移动列中的数据?

javascript - 如何扩展动态导入的模块?

javascript - StimulusJS 如何根据不同子 Controller 中的值计算父 Controller 中的值(购物车 -> 购物车项目)

javascript - 视差-ImageScroll 和 angularJS