发布呼叫按钮单击以下载Excel报告

时间:2019-01-29 07:24:12

标签: java angular rest spring-boot

我正在尝试下载Excel文件,以便从angular js进行POST按钮调用。 我的Java控制器返回void。

要在excel文件中写入的服务:

response.setContentType("application/ms-excel");
response.setHeader("Content-Disposition","attachment filename=\"" + fileName + ".xls"+ "\"");
workbook.write(response.getOutputStream());

响应的类型为HttpServletResponse

如何在Angular中编写下载文件的方法?

1 个答案:

答案 0 :(得分:1)

要从服务器下载文件。

单击按钮即可调用功能。

 downloadFile():void
  {
    this.getFiles("http://localhost:80080/api/demo/GetTestFile")
    .subscribe(fileData => 
      {
      let b:any = new Blob([fileData], { type: 'application/zip' });
      var url= window.URL.createObjectURL(b);
        window.open(url);
      }
    );
  }

  public getFiles(path: string):Observable<any>{
    let requestOption = new RequestOptions({responseType: ResponseContentType.Blob});
    return this.http.get(filePath, requestOption)
        .map((response: Response) => <Blob>response.blob())  ;
  }