vue+element 使用XLSX实现表格download下载功能
首先安装依赖
import XLSX from "xlsx";
import FileSaver from "file-saver";
html
<el-button style="float:right" @click="download('模板下载')" type="primary" class="upload-demo" icon="el-icon-plus" >模板下载 </el-button>
download(){
let that = this;
var wb = XLSX.utils.book_new(); var ws = XLSX.utils.json_to_sheet( [ { A: "S", B: "h", C: "e", D: "e", E: "t", F: "J", G: "S"}, { A: 1, B: 2, C: 3, D: 4, E: 5, F: 6, G: 7}, { A: 2, B: 3, C: 4, D: 5, E: 6, F: 7, G: 8 } ], { header: [ "name", "address", "code","contacts", "phone", "organizationId","hallId",], skipHeader: true } ); var tableArr = [ { name: "名称", address: "地址", code: "营业厅编码", contacts: "联系人", phone: "号码", organizationId:'所属区', hallId: "统一编码", } ]; var ws = XLSX.utils.json_to_sheet(tableArr, { header: [ "name", "address", "code","contacts", "phone", "organizationId","hallId",], skipHeader: true }); XLSX.utils.book_append_sheet(wb, ws, "sheetName"); var wbout = XLSX.write(wb, { bookType: "xlsx", bookSST: true, type: "array" }); try { FileSaver.saveAs( new Blob([wbout], { type: "application/octet-stream" }), "营业厅模板" + ".xlsx" ); } catch (e) { if (typeof console !== "undefined") console.log(e, wbout); } return wbout; },
如果是导出表格数据那就需要调用接口了
js
exportDoc() { //导出文件接口
let that = this;
axios.get( 接口地址, {
params: {
token: this.page.token
}
})
.then(res => {
if (res.data.retCode == '200') {
var wb = XLSX.utils.book_new();
var ws = XLSX.utils.json_to_sheet(
[
{ A: "S", B: "h", C: "e", D: "e", E: "t", F: "J", G: "S"},
{ A: 1, B: 2, C: 3, D: 4, E: 5, F: 6, G: 7},
{ A: 2, B: 3, C: 4, D: 5, E: 6, F: 7, G: 8 }
],
{
header: ["code","hallId", "name", "address", "contacts", "phone",'createTime'],
skipHeader: true
}
);
var tableArr = [
{
code: "编码",
hallId: "统一编码",
name: "名称",
address: "地址",
contacts: "联系人",
phone: "联系电话",
createTime: '创建时间'
}
];
res.data.data.forEach(item => {
tableArr.push({
code: item.code,
name: item.name,
address: item.province_name + item.city_name,
contacts: item.contacts,
phone: item.phone,
createTime: item.createTime
});
});
var ws = XLSX.utils.json_to_sheet(tableArr, {
header: ["code","hallId", "name", "address", "contacts", "phone", 'createTime'],
skipHeader: true
});
XLSX.utils.book_append_sheet(wb, ws, "sheetName");
/* get binary string as output */
var wbout = XLSX.write(wb, {
bookType: "xlsx",
bookSST: true,
type: "array"
});
try {
FileSaver.saveAs(
new Blob([wbout], { type: "application/octet-stream" }),
"营业厅" + ".xlsx"
);
} catch (e) {
if (typeof console !== "undefined") console.log(e, wbout);
}
return wbout;
}
});
},

浙公网安备 33010602011771号