element/element-admin利用js-xlsx插件导出Excel/多级表头(一篇涵盖四种导出的博客)

时间:2025-04-22 11:58:02
<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>