1.下載Excel 文件json
import { ResponseContentType } from '@angular/http'; exportInternalOrder(body) { let user_token: string = this.sessionService.getToken(); let headers = new Headers(); headers.append('Authorization', 'Bearer ' + user_token); return this.http.post(this.config.exportInternalOrder, body,{ headers: headers, responseType: ResponseContentType.Blob }).map(res => new Blob([res._body],{ type: 'application/vnd.ms-excel' })); }
2.下載ZIP瀏覽器
var a = document.createElement('a'); var blob = new Blob([responseData], {'type':"application/octet-stream"}); a.href = URL.createObjectURL(blob); a.download = "filename.zip"; a.click();
瀏覽器有時候會攔截窗口 因此下載excel zip 文件的時候建立a標籤下載 保存到本地便可。如上zip下載示例。session
下載示例:app
/** * 請求成功以後保存成excel文件(基本導出方法,請求成功以後調用) * @param data * @param name */ public saveExcel(data: Response,name:string){ var a = document.createElement('a'); var blob = new Blob([data], {'type':"application/vnd.ms-excel"}); a.href = URL.createObjectURL(blob); a.download = name+".xls"; a.click(); } public down(startDate:String,endDate:String):Promise<any>{ const url= `rest/report/export?startDate=`+startDate+'&endDate='+endDate; return this.http.get(url,{responseType: ResponseContentType.Blob}).toPromise().then(res=>{ //return res.json() as any; this.saveExcel(res.json(),"表一"); }) }