2016-12-05 23 views
1

我想讓WS用apachePOI生成一個Excel(xls,xlsx)文件。我做了類似下面的代碼Angular2 - 下載從RestService收到的XLS

@RequestMapping(value = "/export", method = RequestMethod.GET) 
public void exportXlsx(HttpServletResponse response) { 

    // getting datas for file 
    try { 

     Workbook wb = //creating the file 
     response.setHeader("Content-Disposition", "attachment; filename=" + entity.getType() + ".xls"); 
     wb.write(response.getOutputStream()); 
    } catch (IOException | EncryptedDocumentException e) { 
     Logger.getLogger(e.getStackTrace().toString()); 
    } 
} 

該服務它的工作,並返回一個正確的文件,如果我打電話的服務。我需要使用Angular2爲這個服務添加一個GUI。 調用這個服務,如:

let headers = new Headers({ 'Content-Type': 'application/json', 'Accept': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); 
    let options = new RequestOptions({ headers: headers }); 
    return this.http.post("URL", options); 

我收到像一些錯誤:406(不能接受)。 我嘗試了所有可能的解決方案,我在論壇上找到了,沒有成功。

回答

0

您的Accept頭建議該響應具有xslx文件格式(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet),但您發送的文件的擴展名爲.xls

將文件的擴展名更改爲.xlsx或使用MIME類型application/vnd.ms-excel