前端通过json数据导出excel表格文件(支持多级表头、复杂表头)(json转excel)
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)相关推荐
- 【前端html页面数据导出为pdf文件】
[前端html页面数据导出为pdf文件] 文前白话 在网页端导出 Excel 数据表格保存本地 前端html页面数据导出为pdf文件 文前白话 项目需要,将网页端查询的数据结果与数据分析结果导出文件, ...
- 『解疑』前端通过json数据导出excel表格文件(支持多级表头、复杂表头)(json转excel)
问题 如何友好的通过规范的json数据导出成excel文件. 解题 制定规范的json数据结构: ( 只要将现有的数据处理成以下格式即可导出 ) {headerList: [ // 多级表头(2选1即 ...
- vue实现纯前端导入与解析excel表格文件,导出Excel
一.安装相关依赖 npm install --save xlsx file-saver 二.使用 import * as XLSX from 'xlsx/xlsx.mjs' const FileSav ...
- 通用Excel表格导出(Map类型数据导出为表格)
背景 为提升代码开发效率,项目使用了通用查询(动态数据表.动态条件.动态列名等),各表查询通过同一个页面展现,前端通过获取路径上的表名调用同一个后端控制器--动态获取到查询条件.数据列名.不同表数据等 ...
- react 前端分页查询数据导出excel
react 前端分页查询数据导出excel 前言 一.安装file-saver.xlsx插件 二.创建export.ts文件 三.导出方法 前言 需求:前端实现导出Table中所有数据(不止是当前页面 ...
- java json csv_彻底理解使用JavaScript 将Json数据导出CSV文件
前言 将数据报表导出,是web数据报告展示常用的附带功能.通常这种功能都是用后端开发人员编写的.今天我们主要讲的是直接通过前端js将数据导出Excel的CSV格式的文件. 原理 首先在本地用Excel ...
- JSON数据导出Excel表
JSON数据导出Excel表 应老板要求写了一个实用的小功能,需求是将api接口返回的JSON数据导出Excel表,过程中改了两稿,一是前端js直接导出一个表,另一是分门别类在java中同时导出多个表 ...
- javascript将JSON数据导出为Excle表格
文章目录 方式一:导出json数据 const jsonData = [{name:'路人甲',phone:'123456789',email:'000@123456.com'},{name:'炮灰乙 ...
- js网页导出excel表格文件
下载地址 js网页导出excel表格文件,没有使用任何第三方js类库,简单的实现table数据导出效果. dd:
- Java,导出Excel表格文件
引用三方封装的技术框架 Alibaba/EasyExcel JAVA 解析Excel工具EasyExcel Hutool Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的 ...
最新文章
- 前端、云与人工智能的碰撞 | GDG广州
- SpringMVC的环境搭建
- 【腾讯面试题】Java集合:List、Set以及Map
- OpenCASCADE:Modeling Algorithms模块之拓扑工具
- HQuery中html结构及文本的修改
- python--字符/文本编码解码笔记
- 微信终于可以隐身了,快看看!
- 华为交换机端口不配置access_华为交换机如何配置端口组?华为交换机端口组-百度经验...
- java二进制运算符
- 服务器如何安装虚拟声卡,虚拟声卡驱动VirtualAudioCable安装使用设置教程
- 数据库周刊40丨OceanBase官网上线开发者社区;人民日报关注易鲸捷;2020中国系统架构师大会10月线上召开;数据库迁移经验分享;MySQL大表超字段问题;SQL高级知识;Oracle等待事件
- 基于java小区物业管理系统(含源文件)
- 各种版本的python安装pyHook----解决找不到源的问题
- linux无法登录重置密码问题
- 双非二本计算机学生是应该考研还是就业
- 普罗米修斯 mysql监控_Promethus(普罗米修斯)监控Mysql数据库
- 计算属性普通函数写法 和 set get 写法
- 量化交易学习(10)均线交叉策略
- shell编程之sort、uniq、tr
- 源创媒:创建百科词条有什么注意事项?