【问题标题】:Download excel file in javascript from Rest API response content-disposition outputs [Object, Object]从 Rest API 响应内容处置输出 [Object, Object] 下载 javascript 中的 excel 文件
【发布时间】:2015-06-26 16:55:19
【问题描述】:

我想从我的 angularJs 代码中下载一个 excel 文件。我向Java Rest API发出http post请求并返回带有标题的文件 “内容处置”:“附件;文件名=\”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]

Tested 本地生成的文件。

这是一个类似的问题供参考,但对我没有帮助。

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

【问题讨论】:

  • 你需要更具体,澄清问题是什么让人们帮助你。您可以重新编辑您的问题并附加输出错误吗?

标签: javascript angularjs excel download content-disposition


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    相关资源
    最近更新 更多