国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

AngularJS基于http請求實(shí)現(xiàn)下載php生成的excel文件功能示例

2019-11-19 14:29:17
字體:
供稿:網(wǎng)友

本文實(shí)例講述了AngularJS基于http請求實(shí)現(xiàn)下載php生成的excel文件功能。分享給大家供大家參考,具體如下:

使用PHPExcel插件的同學(xué)們都知道,導(dǎo)出excel是直接將生成內(nèi)容修改content-type來將內(nèi)容作為文件下載的,這時(shí)候需要頁面上有一個(gè)url,通過點(diǎn)擊來下載。

那么問題來了,如果在生成excel時(shí)有請求參數(shù),只能通過js的http請求,這時(shí)候怎么下載呢?

研究了一下,有以下幾種方式:

1. angularjs創(chuàng)建a標(biāo)簽?zāi)M下載

// 創(chuàng)建a標(biāo)簽?zāi)M下載function exportExcel(params, filename) {  return $http({    url: '/api/exportExcel',    method: "POST",    headers: {      'Content-type': 'application/json'    },    params: params,    responseType: 'arraybuffer'  }).success(function (data) {    var blob = new Blob([data], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});    var objectUrl = URL.createObjectURL(blob);    var a = document.createElement('a');    document.body.appendChild(a);    a.setAttribute('style', 'display:none');    a.setAttribute('href', objectUrl);    a.setAttribute('download', filename);    a.click();    URL.revokeObjectURL(objectUrl);  });}

這個(gè)方式中要注意,如果傳輸?shù)氖莤ls,也就是excel5文件,type要設(shè)置為application/vnd.ms-excelapplication/x-excel

2. js將請求參數(shù)生成url,創(chuàng)建a標(biāo)簽

// 生成下載url$scope.data.down_url = "../c_potential/get_excel?end_time="+$scope.end_date+"&liable="+liable+"&nickname="+$scope.data.nickname+"&province="+$scope.data.province_cur+"&start_time="+$scope.start_date;

然后將url綁定到某個(gè)a標(biāo)簽中,這種方式適合參數(shù)較少的情況,而且數(shù)據(jù)不會(huì)經(jīng)過二次處理,不易發(fā)生error,唯一的缺點(diǎn)是需要處理兩次,可以設(shè)置兩個(gè)按鈕,一個(gè)為生成,將參數(shù)寫入url中,第二個(gè)按鈕為下載excel。雖然用戶是兩次操作,但實(shí)際上只發(fā)生了一次http請求,不會(huì)影響性能。

3. 先生成后下載

第三種方式類似第二種,首先生成excel文件,儲(chǔ)存到服務(wù)器,然后下載。涉及到磁盤IO,所以性能比較低,不推薦這種方式,只是作為一個(gè)方法記錄下來。

angularjs模擬下載的方式最方便,但有可能出現(xiàn)error,第二種方式最保險(xiǎn)。

更多關(guān)于AngularJS相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《AngularJS指令操作技巧總結(jié)》、《AngularJS入門與進(jìn)階教程》及《AngularJS MVC架構(gòu)總結(jié)

希望本文所述對大家AngularJS程序設(shè)計(jì)有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 通道| 锡林浩特市| 启东市| 清丰县| 海阳市| 南康市| 华蓥市| 安国市| 青阳县| 宁德市| 平塘县| 乳源| 精河县| 故城县| 班戈县| 定南县| 平泉县| 贺兰县| 道孚县| 安福县| 会泽县| 饶平县| 准格尔旗| 木兰县| 九龙城区| 眉山市| 彭阳县| 桃园市| 尉犁县| 勃利县| 通山县| 长汀县| 正镶白旗| 那坡县| 浪卡子县| 荔浦县| 乐陵市| 宁武县| 吉首市| 甘南县| 镇安县|