当复杂的表格,有合并列或行的表格,下载时采用前端根据获取dom节点内容下载

页面表格如下:

后端数据如下:

rows:[
{"2022-01":"0","2022-02":"0","2022-03":"-900","2022-04":"0","考核内容|月份":"产品不良批次"},

{"2022-01":"0","2022-02":"0","2022-03":"0","2022-04":"0","考核内容|月份":"产品不良总数"}, {"2022-01":"0","2022-02":"0","2022-03":"0","2022-04":"0","考核内容|月份":"批次不合格率"}, {"2022-01":"0","2022-02":"57","2022-03":"26","2022-04":"0","考核内容|月份":"产品不合格率"},
{"2022-01":"0","2022-02":"0","2022-03":"-900","2022-04":"0","考核内容|月份":"理货不良批次"},

{"2022-01":"0","2022-02":"0","2022-03":"0","2022-04":"0","考核内容|月份":"理货不良总数"}, {"2022-01":"0","2022-02":"0","2022-03":"0","2022-04":"0","考核内容|月份":"批次不合格率"}, {"2022-01":"0","2022-02":"57","2022-03":"26","2022-04":"0","考核内容|月份":"产品不合格率"},
{"2022-01":"0","2022-02":"0","2022-03":"0","2022-04":"0","考核内容|月份":"入库总批次"},
{"2022-01":"0","2022-02":"0","2022-03":"0","2022-04":"0","考核内容|月份":"入库总数量"},
{"2022-01":"0","2022-02":"57","2022-03":"26","2022-04":"0","考核内容|月份":"不良总批次"},
{"2022-01":"0","2022-02":"0","2022-03":"-900","2022-04":"0","考核内容|月份":"不良品总数"},
{"2022-01":"0","2022-02":"0","2022-03":"0","2022-04":"0","考核内容|月份":"出勤人数"},
{"2022-01":"0","2022-02":"0","2022-03":"0","2022-04":"0","考核内容|月份":"人均检出不良批次"},
{"2022-01":"0","2022-02":"57","2022-03":"26","2022-04":"0","考核内容|月份":"人均检出不良总数"},
],  
headTab1:["考核内容|月份", "2022-01", "2022-02", "2022-03", "2022-04"],//表头数据

页面HTML部分

<div class="makeBar"><div class="item"><a href="#" id="daochu"><el-button type="primary">导出</el-button></a></div>
</div>
<div class="body" id="export"><el-tablestyle="width: 100%;min-width: 1000px" border:span-method="objectSpanMethod":data="rows" :header-cell-style='HeaderStyle'><el-table-columnalign="center"label="不良类型"><template slot-scope="scope">{{scope.$index < 4?'产品不良':(scope.$index < 8?'理货不良':'合计')}}</template></el-table-column><template v-for="(item2,index2) in headTab1"> <el-table-column :label="item2" :key="index2" align="center"><template slot-scope="scope">              <span>{{scope.row[item2]}}</span></template></el-table-column></template></el-table>
</div>

合并行代码js

// 合并行
objectSpanMethod({ row, column, rowIndex, columnIndex }) {if (columnIndex === 0) {if(rowIndex === 0 || rowIndex === 4) {return {rowspan: 4,colspan: 1};}else if(rowIndex === 8){return {rowspan: 7,colspan: 1}}else{return {rowspan: 0,colspan: 0};}}
}

先调用接口,获取到表格数据后,如下:

this.$nextTick(()=>{var html = `<style>.tit{font-size:16px}table {border-collapse: collapse;border: 1px solid #000;}th,tr,td{border: 1px solid #000;font-size: 16px;}</style>` + document.getElementById("export").outerHTML + "";var arr = html.split('<th class="gutter" style="width: 0px; display: none;"></th>')html = arr.join('')// 实例化一个Blob对象,其构造函数的第一个参数是包含文件内容的数组,第二个参数是包含文件类型属性的对象var blob = new Blob([html], { type: "application/vnd.ms-excel" });var a = document.getElementById("daochu");// 利用URL.createObjectURL()方法为a元素生成blob URLa.href = URL.createObjectURL(blob);// 设置文件名,目前只有Chrome和FireFox支持此属性a.download = "不良统计表.xls";
})

上述样式添加是因为导出时,表格的线条消失了,所以手动添加border,这样前端点击导出按钮就可以导出跟页面一样的表格了

前端实现页面表格导出相关推荐

  1. 【前端html页面数据导出为pdf文件】

    [前端html页面数据导出为pdf文件] 文前白话 在网页端导出 Excel 数据表格保存本地 前端html页面数据导出为pdf文件 文前白话 项目需要,将网页端查询的数据结果与数据分析结果导出文件, ...

  2. 将页面表格导出为excel并下载

    将页面表格导出为excel并下载的方式有很多, 本次介绍的是表格div的下载. 这种方式很简单,不需要去创建excel文件,也不需要创建工作簿,然后一点一点的填写数据.只需要将页面的div中的表格下载 ...

  3. xlsx插件将页面表格导出为xlsx文件格式简单案例

    目录 前言 插件安装 案例一代码 案例一效果 案例二代码 案例二页面展示 案例二导出效果: 案例二引入代码文件dist_xlsx.full.min.js Git地址 前言 此案例未涉及到表格样式,只是 ...

  4. js导出变量 vue_vue.js前端实现excel表格导出和获取headers里的信息

    前段时间写过一篇文章基于element实现后台管理系统,并提到excel表格导出功能,可能描述不是很详细,现在单独整理列出. 后端提供的接口: // 下载分拣列表 export function ge ...

  5. js导出html页面到excel表格,JavaScript将页面表格导出为Excel的具体实现

    导出Excel var idTmr = ""; function killExcelProcess(appExcel_){ appExcel_.Quit(); appExcel_ ...

  6. JavaScript将页面表格导出为Excel

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD& ...

  7. html页面表格导出到excel总结

    转载:http://www.cnblogs.com/liuguanghai/archive/2012/12/31/2840262.html <table id="tableExcel& ...

  8. php页面表格导出excel表格数据类型,php页面表格导出excel表格数据类型-php导出excel是不是导出整个表的?可不可以导出指......

    php 怎么把数据导出到excel表格 昨天项目里有个新需求,客户希望把一些数据能导出成为Excel表格,刚开始用PHP原生输入Excel表格,发现效果不是很理想,于是找到一个比较著名的库:PHPEx ...

  9. 如何将html页面导出到excel,html页面表格导出到excel总结(示例代码)

    html 表格导出道Excel 列标题1 列标题2 类标题3 列标题4 列标题5 aaa bbb ccc ddd eee AAA BBB CCC DDD EEE FFF GGG HHH III JJJ ...

最新文章

  1. 审稿人眼中的好论文到底长什么样?
  2. 海量数据处理利器greenplum——初识
  3. ios之UISegmentedcontol
  4. 04_数据库升级onUpgradeondowngrade
  5. 【bzoj1911】 Apio2010—特别行动队
  6. ANSIBLE--handlers的概念
  7. 《2021年度中国开发者有奖大调查》首批中奖名单火热出炉,下一个会是你吗?
  8. 创客教室-中小学创客教育课程介绍
  9. 云计算机领域的黑马AWS,为何一黑到底
  10. sharkle里的链接
  11. 2021年3月PHP免费自学最全教程来了
  12. About 9.18 This Week
  13. 重磅!阿里又推免费商用字:阿里巴巴普惠体
  14. 物联网设备网关系统架构设计
  15. 加油,打工人~杨斯维特珍视您的每一滴汗水!
  16. css弹性盒之justify-content详解
  17. 寄存器与锁存器的区别
  18. ovh服务器可以做电影网站吗,OVH kimsufi服务器评测
  19. 会计初级可以自己报名吗_初级会计考试可以自学吗?我刚完成报名
  20. WAMP下安装phpunit

热门文章

  1. Java选择题(三十)
  2. 你的电脑经常会发出滋滋的声音这是什么原因造成的呢?
  3. byte与int的转换
  4. zbrush导入obj模型不显示_zbrush软件怎么导入obj格式文件?Zbrush2018教程在哪可以看?...
  5. java long转换double类型_Java 将Long转换成Double类型
  6. 第一章 网络编程基础
  7. 一个月备考通过PMP
  8. 科研丨Web of Science检索技巧
  9. RGC(微服务体系)
  10. VLAN间的通信-03-vlanif技术