element/element-admin利用js-xlsx插件导出Excel/多级表头(一篇涵盖四种导出的博客)
<script>
import { exportGzbs } from "@/api/county";
import { getCookie,setCookie,removeCookie } from '@/utils/Cookie'
export default {
data() {
return {
submit_time: "",
downloadLoading: false,
filename: "", //导出文件名
autoWidth: true, //单元格自动宽度
bookType: "xlsx", //导出表格格式
exportDataList: []
},
},
methods: {
//导出数据
exportData() {
const params = {
user_id: this.$store.getters.token,
inter_version: "1",
dispatch_level: this.form.dispatch_level,
type: 1,
search_str:this.form.search_str,
submit_time: getCookie('submit_time')
};
//请求接口,查询表格内容数据
exportGzbs(params).then(res => {
if (res.data) {
this.exportDataList = res.data;
this.service_country = res.service_country
this.downloadLoading = true;
import("@/vendor/Export2Excel").then(excel => {
const multiHeader = [
[
"第一书记工作开展情况表",
"","","","","", "","","","","",
"","","","","", "","","","","",
"","","","","", "","","","","",
"","","","","", "","","","","",
"","","","","", "","","","","",
"","","","","", "","","","",
], //第一行
[
"区县:",this.service_country,
"开始日期:",getCookie('startTime'),"截止日期:",getCookie('endTime'),"","","","","","","","",
"","","","","","","","","","",
"","","","","","","","","","",
"","","","","","","","","","",
"","","","","","","","","","",
"","","",""
], //第二行
[
"村庄名称",
"帮包村数量(个)",
"联系党员群众情况",
"", "","","",
"帮包规划",
"","",
"基层组织建设情况",
"","","","", "","","","","","","",
"派出单位支持情况",
"","", "","", "",
"巩固提升脱贫情况",
"", "","",
"产业发展实施情况",
"","","", "", "","","",
"乡村文明建设情况",
"", "","",
"村级治理情况",
"","",
"办实事解难题情况",
"", "", "","","", "","","", "","",""
] //第三行
]; // 前三行的表头数据,二维数组,不够的用空白补全
const header = [
"",
"",
"走访党员(名)",
"走访群众(户)",
"发放调查问卷(份)",
"召开座谈会(次)",
"慰问党员、贫困户(户)",
"已制定的(个)",
"经派出单位党组(党委)集体研究的(个)",
"经村民代表会议或村民会议通过的(个)",
"新建党组织(个)",
"帮助调整选配党组织书记(名)",
"帮助调整选配“两委”成员(名)",
"发展党员(名)",
"发展入党积极分子(名)",
"培养后备*(名)",
"吸引、培养产业发展人才(人)",
"健全完善管用制度(个)",
"新建或改建村级办公场所(个)",
"召开党员大会(次)",
"召开村民代表会议或村民会议(次)",
"组织开展主题党日等党员活动(次)",
"领导班子成员到村调研次数",
"领导班子成员到村调研人次",
"党委(党组)研究第一书记工作(次)",
"主要领导听取第一书记工作汇报(次)",
"单位到村组织开展活动(次)",
"单位投入帮扶资金(万元)",
"享受政策建档立卡贫困总户数(户)",
"享受政策贫困总人口数(人)",
"落实帮扶措施户数(户)",
"落实帮扶措施脱贫人口数(人)",
"外出学习考察次数(次)",
"外出学习考察参加人次(人)",
"发展培育产业项目(个)",
"组织群众参加技能培训(次)",
"成立合作社(个)",
"带动参与产业发展群众(人)",
"投入产业项目资金(万元)",
"帮助新增村集体经营性收入(万元)",
"组织开展文化活动次数(次)",
"新建农民书屋(个)",
"新建文化广场(个)",
"帮助兴建体育设施(处)",
" “四议两公开”制度实施(次)",
"村务党务财务公开(次)",
"指导完善村规民约(部)",
"帮助通路村(个)",
"修路里程(公里)",
"帮助改电、通电村(个)",
"安装路灯(盏)",
"帮助通自来水的村(个)",
"打井(眼)",
"解决水浇地(亩)",
"新建和改建卫生室(个)",
"新建和改建幼儿园(个)",
"帮助危房改造(处)",
"帮助残疾、特困等符合条件人员落实扶贫涉农政策,解决实际问题(个)",
"争取社会资金(万元)"
]; // 最后一行也就是第四行的表头数据
const filterVal = [
"bs_name",
"bcsl_num",
"zfdy_num",
"zfqz_num",
"fydcwj_num",
"zkzth_num",
"wwdypkh_num",
"yzd_num",
"dzjtyj_num",
"cmhytg_num",
"xjdzz_num",
"xpdzzsj_num",
"xplwcy_num",
"fzdy_num",
"rdjjfz_num",
"pyhbgb_num",
"pycyfzrc_num",
"jqwsglzd_num",
"xgcjbgcs_num",
"zkdydh_num",
"zkcmhy_num",
"zzkzdyhd_num",
"ldbzdy_num",
"ldbzdyr_num",
"dwyjgz_num",
"tqhbgz_num",
"dwzzhd_num",
"dwtrzj_num",
"xszklkpk_num",
"xszcpkzws_num",
"lsbfcs_num",
"lsbfcstp_num",
"wcxxkc_num",
"wcxxkcr_num",
"fzpycy_num",
"zzqwpx_num",
"clhzs_num",
"ddcycyfzqz_num",
"trcyxm_dec",
"bzxzcjtyysr_dec",
"zzkzwhhd_num",
"xjnmsw_num",
"xjwhgc_num",
"bzxjtyss_num",
"sylgkzkss_num",
"cwdwcwgk_num",
"zdwscgmy_num",
"bztlc_num",
"xllc_num",
"bzgdtdc_num",
"azld_num",
"bztzls_num",
"dj_num",
"jjsjd_num",
"xjhgjwss_num",
"xjhgjyey_num",
"bzwfgz_num",
"bzcjtk_num",
"zqshzj_dec"
];
const list = this.exportDataList;
const data = this.formatJson(filterVal, list);
console.log(data);
const merges = [
"A1:V1",
"A3:A4",
"B3:B4",
"C3:G3",
"H3:J3",
"K3:V3",
"W3:AB3",
"AC3:AF3",
"AG3:AN3",
"AO3:AR3",
"AS3:AU3",
"AV3:BG3"
]; // 合并单元格的数据,
excel.export_json_to_excel({
multiHeader,
header,
merges,
data,
filename: "第一书记工作开展情况表", //非必填
autoWidth: true, //非必填
bookType: "xlsx" //非必填
});
this.downloadLoading = false;
});
}
});
},
formatJson(filterVal, jsonData) {
return jsonData.map((v, index) =>
filterVal.map(j => {
// if (j === "gender") {
// (j);
// return (v[j] = v[j] == "0" ? "未知" : v[j] == "1" ? "男" : "女");
// } else {
// return v[j];
// }
return v[j];
})
);
}
}
};
</script>