vue+elementUI導(dǎo)出excel 通過調(diào)取后端接口導(dǎo)出excel

前端導(dǎo)出excel有三種方式:1.通過純前端導(dǎo)出excel,2.通過調(diào)取接口導(dǎo)出excel炮赦,就是后端做導(dǎo)出功能,這種的話一般就是后端返回給你的數(shù)據(jù)形式是blob或者是arrybuffter這種方式样勃,3.三種就是后端給你一個(gè)導(dǎo)出的地址吠勘,前端通過window.location.href導(dǎo)出

1.通過純前端導(dǎo)出excel

1.安裝插件

npm install js-xlsx file-saver -S

npm install script-loader -S -D //它幫我們掛載了,不需要引入到main.js里面

2峡眶、在src下創(chuàng)建一個(gè)文件夾vendor,并且引入Export2Excel.js

此處附上我項(xiàng)目中vendor的鏈接剧防,直接拷過去就好:

vendor文件拷貝鏈接

3.html

<template>

????<div>

????????<el-button?type="primary"?@click="onexcel">導(dǎo)出數(shù)據(jù)</el-button>

??<el-table

????:data="tableData"

????border

????style="width:?100%">

????<el-table-column

??????prop="date"

??????label="日期"

??????width="180">

????</el-table-column>

????<el-table-column

??????prop="name"

??????label="姓名"

??????width="180">

????</el-table-column>

????<el-table-column

??????prop="address"

??????label="地址">

????</el-table-column>

??</el-table>

????</div>

</template>

<script>

export default{

data(){

return{

?tableData:?[{

?????????????????id:?1,

??????????date:?'2016-05-02',

??????????name:?'王小虎',

??????????address:?'上海市普陀區(qū)金沙江路?1518?弄'

????????},?{

????????????id:?2,

??????????date:?'2016-05-04',

??????????name:?'王小虎',

??????????address:?'上海市普陀區(qū)金沙江路?1517?弄'

????????},?{

????????????id:?3,

??????????date:?'2016-05-01',

??????????name:?'王小虎',

??????????address:?'上海市普陀區(qū)金沙江路?1519?弄'

????????},?{

????????????id:?4,

??????????date:?'2016-05-03',

??????????name:?'王小虎',

??????????address:?'上海市普陀區(qū)金沙江路?1516?弄'

????????}],

}

},

methods:{

onexcel() {

? // this.downloadLoading = true;

? import("@/vendor/Export2Excel").then(excel => {

? ? const tHeader = ["id", "date", "name", "address",];//要導(dǎo)出后表頭是什么,可以跟tableDate中的表頭不一致

? ? const filterVal = [

? ? ? "id",

? ? ? "date",

? ? ? "name",

? ? ? "address"

? ? ];

? ? const data = this.formatJson(filterVal, this. tableData)

? ? // const data = this.tableData;這里可以通過獲取表格中的數(shù)據(jù)的接口獲取

? ? excel.export_json_to_excel({

? ? ? header: tHeader,

? ? ? data,

? ? ? filename: "table-list"? //導(dǎo)出文件的名辫樱,自定義就好

? ? });

? ? // this.downloadLoading = false;

? });

},

//下載方法中诵姜,需要用到的格式化json的方法

formatJson(filterVal, jsonData) {

? return jsonData.map(v =>

? ? filterVal.map(j => {

? ? ? if (j === "id") {? //此處如沒有要格式化的列,可以不用此判斷

? ? ? ? // return parseTime(v[j])

? ? ? ? return v[j];

? ? ? } else {

? ? ? ? return v[j];

? ? ? }

? ? })

? );

},

}

}

2.通過調(diào)取接口導(dǎo)出excel搏熄,

例如:

onexcel(){

let data = {

? ? ? ? carNo, //物資/車牌號(hào)

? ? ? ? provider, //項(xiàng)目

? ? ? ? name, // 供貨商

? ? ? ? mzTimeBegin: inTimes ? inTimes[0] : "",

? ? ? ? mzTimeEnd: ?inTimes ? inTimes[1] : "",

? ? ? };

?WeighbridgeExcelList(data).then((res)=>{//?WeighbridgeExcelList是封裝的api接口

?const aLink = document.createElement("a");

? ? ? ? ? let blob = new Blob([res], { type: "application/vnd.ms-excel" });

? ? ? ? ? aLink.href = URL.createObjectURL(blob);

? ? ? ? ? ? aLink.setAttribute('download', '地磅記錄.xlsx');

? ? ? ? ? aLink.click();

? ? ? ? ? document.body.appendChild(aLink);

? ? ? ? ? // this.$refs.loadElement.appendChild(aLink)

? ? ? ? }) .catch((err) => {

? ? ? ? ? this.$message.warning(err);

? ? ? ? })

}

3.三種就是后端給你一個(gè)導(dǎo)出的地址

例如:

onexcel(){’

this.$axios.get("接口地址",{params:{

? ? ? ? ? ? 參數(shù)1: data ...

? ? ? ? }}).then(res => {

? ? ? ? if(res.request.status === 200) {

? ? ? ? // 導(dǎo)出

? ? ? ? ? ? location.href = res.request.responseURL;

? ? ? ? ? ? // window.open(res.request.responseURL);

? ? ? ? ? ? this.$message({message: '導(dǎo)出成功', type: 'success'});

? ? ? ? }

? ? }).catch( err => {

? ? ? ? this.$message.error('導(dǎo)出失敗');

? ? })

————————————————

版權(quán)聲明:本文為CSDN博主「陽光的男夾克」的原創(chuàng)文章棚唆,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明心例。

原文鏈接:https://blog.csdn.net/weixin_44640323/article/details/108756402

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末宵凌,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子止后,更是在濱河造成了極大的恐慌瞎惫,老刑警劉巖溜腐,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異瓜喇,居然都是意外死亡挺益,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門乘寒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來望众,“玉大人,你說我怎么就攤上這事伞辛±煤玻” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵蚤氏,是天一觀的道長甘耿。 經(jīng)常有香客問我,道長竿滨,這世上最難降的妖魔是什么佳恬? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮于游,結(jié)果婚禮上殿怜,老公的妹妹穿的比我還像新娘。我一直安慰自己曙砂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布骏掀。 她就那樣靜靜地躺著鸠澈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪截驮。 梳的紋絲不亂的頭發(fā)上笑陈,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天,我揣著相機(jī)與錄音葵袭,去河邊找鬼涵妥。 笑死,一個(gè)胖子當(dāng)著我的面吹牛坡锡,可吹牛的內(nèi)容都是我干的蓬网。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼鹉勒,長吁一口氣:“原來是場噩夢啊……” “哼帆锋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起禽额,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤锯厢,失蹤者是張志新(化名)和其女友劉穎皮官,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體实辑,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捺氢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了剪撬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摄乒。...
    茶點(diǎn)故事閱讀 39,688評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖婿奔,靈堂內(nèi)的尸體忽然破棺而出缺狠,到底是詐尸還是另有隱情,我是刑警寧澤萍摊,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布挤茄,位于F島的核電站,受9級(jí)特大地震影響冰木,放射性物質(zhì)發(fā)生泄漏穷劈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一踊沸、第九天 我趴在偏房一處隱蔽的房頂上張望歇终。 院中可真熱鬧,春花似錦逼龟、人聲如沸评凝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奕短。三九已至,卻和暖如春匀钧,著一層夾襖步出監(jiān)牢的瞬間翎碑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工之斯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留日杈,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓佑刷,卻偏偏與公主長得像莉擒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子瘫絮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容