从Rest API响应内容配置输出[Object,Object]下载javascript中的excel文件 [英] Download excel file in javascript from Rest API response content-disposition outputs [Object, Object]

查看:961
本文介绍了从Rest API响应内容配置输出[Object,Object]下载javascript中的excel文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to download a excel file from my angularJs code. Where i made a http post request to Java Rest API and returned the file with header "Content-Disposition" : "attachment; filename=\"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方面

On Javascript Side

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保存文件.

Used FileSaver.js to save file.

输出文件为[Object,Object]

已测试本地生成的文件.

这里有一个类似的参考问题,对我没有帮助.

Here is a similar question for reference that didn't help me.

将excel文件接收为来自REST服务的javascript响应

推荐答案

我刚刚注意到Java服务器与Angular客户端上的Mime类型不同.
链接显示了与电子表格相关的不同MIME类型.
尝试使它们保持一致,然后查看是否可以解决问题.
也有这种方式而没有帮助.

I just noticed the Mime types are different on Java server vs Angular client.
This link shows the different MIME types related to spreadsheets.
Try making them consistent and seeing if that fixed it.
There was also this way without mishelper.

这篇关于从Rest API响应内容配置输出[Object,Object]下载javascript中的excel文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆