代码之家  ›  专栏  ›  技术社区  ›  Olive

如何在angular中使用RESTAPI web服务下载.xlsx文件?

  •  0
  • Olive  · 技术社区  · 5 年前

    我想从RESTAPI下载一个.xlsx文件。但是服务呼叫失败了。我的HTML代码如下,

     <button type="submit" class="btn btn-primary" (click)="showPDF()">Download</button>
    

    我的ts文件是,

    public showPDF(): void {
    this.bidService.getPDF().subscribe(
      (data) => {
        console.log(" showPDF success " );
        if (data) {
          const myBlob: Blob = new Blob([(<any>data)._body]);
          importedSaveAs(myBlob, 'SampleExcel.xlsx');
        }
      },
      (err) => {
        console.log(" show pdf failed " );});
    

    我的服务文件是,

    public getPDF(): Observable<any> {   
        let uri = 'http://localhost:8080/download/pdf';
        const httpOptions = {
          headers: new HttpHeaders({ 'responseType':  'ResponseContentType.Blob',
          'Content-Type':  'application/vnd.ms-excel'})};
        return this.http.get(uri, httpOptions);
    }
    

    我总是收到“显示pdf失败”的错误日志。但是当我试图从URL下载.xlsx文件时[ http://localhost:8080/download/pdf] 正在下载文件。所以我希望RESTAPI中没有问题。我是个新手。你能给我一个实现这一目标的建议吗。提前谢谢。

    0 回复  |  直到 5 年前