簡體   English   中英

從 Rest API 響應內容處置輸出 [Object, Object] 下載 javascript 中的 excel 文件

[英]Download excel file in javascript from Rest API response content-disposition outputs [Object, Object]

我想從我的 angularJs 代碼中下載一個 excel 文件。 我向Java Rest API發出http post請求並返回帶有標題“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]

已測試本地生成的文件。

這是一個類似的問題供參考,但對我沒有幫助。

從 Rest 服務接收 excel 文件作為 javascript 響應

我剛剛注意到 Java 服務器和 Angular 客戶端上的 Mime 類型不同。
鏈接顯示與電子表格相關的不同 MIME 類型。
嘗試使它們保持一致,看看是否解決了它。
也有這樣的方法,不用誤人子弟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM