downloadBmExcel(){let vm = this;let titles = ["顺序号","责任者","文号","标题","日期","页号","备注"];let keys = ['index',null,null,'name',null,'range',null];let groups = [];vm.groups.map((v)=>{if(!v.type){groups.push(v);}})JSONToExcelConvertor(groups,vm.volumeName+"_智能编目目录",titles,keys);},console.log(groups)//数据格式//0://editing: false//id: "c9e9bc6b8a200001c9eb127049c02a00"//index: 0//ismulu: true//list: Array(3)//name: "讯问笔录((被告)第1次"//range: "1-3"//respon: ""//select: false
封装
export function JSONToExcelConvertor (JSONData, FileName, title, keys, notital, titleH) {if (!JSONData) { return }// 转化json为objectvar arrData = typeof JSONData !== 'object' ? JSON.parse(JSONData) : JSONDatavar excel = '<table>'// 设置表头var row = notital ? '' : "<tr><th  style='border: 1px solid #000000;height:36px;line-height:36px;' align='center' colspan='" + title.length + "'>" + (titleH || '卷内文件目录') + '</th></tr><tr>'if (title) {// 使用标题项for (var i in title) {row += "<th  style='border: 1px solid #000000;height:36px;line-height:36px;' align='center'>" + title[i] + '</th>'}} else {// 不使用标题项for (var i in arrData[0]) {row += "<th  style='border: 1px solid #000000;height:36px;line-height:36px;' align='center'>" + i + '</th>'}}excel += row + '</tr>'// 设置数据for (var i = 0; i < arrData.length; i++) {var row = '<tr>'for (var k in title) {if (!keys[k]) {row += "<td style='border: 1px solid #000000;height:36px;line-height:36px;MSO-NUMBER-FORMAT:\"\@\"'></td>"} else {row += "<td  style='border: 1px solid #000000;height:36px;line-height:36px;MSO-NUMBER-FORMAT:\"\@\"' align='center'>" + arrData[i][keys[k]] + '</td>'}}// for (var index in arrData[i]) {//     //判断是否有过滤行//     if(filter)//     {//         if(filter.indexOf(index)==-1)//         {//              var value = arrData[i][index] == null ? "" : arrData[i][index];//              row += '<td>' + value + '</td>';//         }//     }//     else//     {//          var value = arrData[i][index] == null ? "" : arrData[i][index];//          row += "<td align='center'>" + value + "</td>";//     }// }excel += row + '</tr>'}excel += '</table>'var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>"excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">'excelFile += '<head>'excelFile += '<!--[if gte mso 9]>'excelFile += '<xml>'excelFile += '<x:ExcelWorkbook>'excelFile += '<x:ExcelWorksheets>'excelFile += '<x:ExcelWorksheet>'excelFile += '<x:Name>'excelFile += '{worksheet}'excelFile += '</x:Name>'excelFile += '<x:WorksheetOptions>'excelFile += '<x:DisplayGridlines/>'excelFile += '</x:WorksheetOptions>'excelFile += '</x:ExcelWorksheet>'excelFile += '</x:ExcelWorksheets>'excelFile += '</x:ExcelWorkbook>'excelFile += '</xml>'excelFile += '<![endif]-->'excelFile += '</head>'excelFile += '<body>'excelFile += excelexcelFile += '</body>'excelFile += '</html>'var uri = 'data:application/vnd.ms-excel;charset=utf-8,' + encodeURIComponent(excelFile)var link = document.createElement('a')link.href = urilink.style = 'visibility:hidden'link.download = FileName + '.xls'document.body.appendChild(link)link.click()document.body.removeChild(link)
}

前端通过json数据导出excel表格文件(支持多级表头、复杂表头)(json转excel)相关推荐

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

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

  2. 『解疑』前端通过json数据导出excel表格文件(支持多级表头、复杂表头)(json转excel)

    问题 如何友好的通过规范的json数据导出成excel文件. 解题 制定规范的json数据结构: ( 只要将现有的数据处理成以下格式即可导出 ) {headerList: [ // 多级表头(2选1即 ...

  3. vue实现纯前端导入与解析excel表格文件,导出Excel

    一.安装相关依赖 npm install --save xlsx file-saver 二.使用 import * as XLSX from 'xlsx/xlsx.mjs' const FileSav ...

  4. 通用Excel表格导出(Map类型数据导出为表格)

    背景 为提升代码开发效率,项目使用了通用查询(动态数据表.动态条件.动态列名等),各表查询通过同一个页面展现,前端通过获取路径上的表名调用同一个后端控制器--动态获取到查询条件.数据列名.不同表数据等 ...

  5. react 前端分页查询数据导出excel

    react 前端分页查询数据导出excel 前言 一.安装file-saver.xlsx插件 二.创建export.ts文件 三.导出方法 前言 需求:前端实现导出Table中所有数据(不止是当前页面 ...

  6. java json csv_彻底理解使用JavaScript 将Json数据导出CSV文件

    前言 将数据报表导出,是web数据报告展示常用的附带功能.通常这种功能都是用后端开发人员编写的.今天我们主要讲的是直接通过前端js将数据导出Excel的CSV格式的文件. 原理 首先在本地用Excel ...

  7. JSON数据导出Excel表

    JSON数据导出Excel表 应老板要求写了一个实用的小功能,需求是将api接口返回的JSON数据导出Excel表,过程中改了两稿,一是前端js直接导出一个表,另一是分门别类在java中同时导出多个表 ...

  8. javascript将JSON数据导出为Excle表格

    文章目录 方式一:导出json数据 const jsonData = [{name:'路人甲',phone:'123456789',email:'000@123456.com'},{name:'炮灰乙 ...

  9. js网页导出excel表格文件

    下载地址 js网页导出excel表格文件,没有使用任何第三方js类库,简单的实现table数据导出效果. dd:

  10. Java,导出Excel表格文件

    引用三方封装的技术框架 Alibaba/EasyExcel JAVA 解析Excel工具EasyExcel Hutool Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的 ...

最新文章

  1. 前端、云与人工智能的碰撞 | GDG广州
  2. SpringMVC的环境搭建
  3. 【腾讯面试题】Java集合:List、Set以及Map
  4. OpenCASCADE:Modeling Algorithms模块之拓扑工具
  5. HQuery中html结构及文本的修改
  6. python--字符/文本编码解码笔记
  7. 微信终于可以隐身了,快看看!
  8. 华为交换机端口不配置access_华为交换机如何配置端口组?华为交换机端口组-百度经验...
  9. java二进制运算符
  10. 服务器如何安装虚拟声卡,虚拟声卡驱动VirtualAudioCable安装使用设置教程
  11. 数据库周刊40丨OceanBase官网上线开发者社区;人民日报关注易鲸捷;2020中国系统架构师大会10月线上召开;数据库迁移经验分享;MySQL大表超字段问题;SQL高级知识;Oracle等待事件
  12. 基于java小区物业管理系统(含源文件)
  13. 各种版本的python安装pyHook----解决找不到源的问题
  14. linux无法登录重置密码问题
  15. 双非二本计算机学生是应该考研还是就业
  16. 普罗米修斯 mysql监控_Promethus(普罗米修斯)监控Mysql数据库
  17. 计算属性普通函数写法 和 set get 写法
  18. 量化交易学习(10)均线交叉策略
  19. shell编程之sort、uniq、tr
  20. 源创媒:创建百科词条有什么注意事项?

热门文章

  1. java 文件传输_Java开发之如何通过HTTP方式传输文件
  2. td 提示暂无数据图片同上
  3. 基于Cisco CDP协议的家用路由器以及盒子的自动配置随想
  4. 滑模控制学习笔记(二)
  5. 手动卸载CAD 删除残留文件 清理遗留的文件
  6. unity3d Crease效果分析
  7. iOS蓝牙开发之数据传输精华篇
  8. c语言棋盘上的麦粒switch,C语言教材后习题及答案.doc
  9. 会计信息系统复习资料
  10. 线性共轭梯度法python_python实现共轭梯度法