JSON数据转EXCEL

文章目录

  • JSON数据转EXCEL
  • 前言
  • 一、需要安装哪些依赖?
  • 二、使用步骤
    • 1.导入
    • 2.封装的jsonToExcel函数
  • 总结

前言

一、需要安装哪些依赖?

  • npm install -S file-saver 用来生成文件的web应用程序
  • npm install -S xlsx 电子表格格式的解析器

二、使用步骤

1.导入

代码如下(示例):

import { saveAs } from 'file-saver'
import XLSX from 'xlsx/dist/xlsx.full.min'

2.封装的jsonToExcel函数

具体代码如下(示例):

function datenum (v, date1904) {if (date1904) v += 1462let epoch = Date.parse(v)return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000)
}function dataTows (data, w) {var ws = {s: {'!row': [{ wpx: 67 }]}}ws['!cols'] = []for (var n = 0; n !== data[0].length; ++n) {ws['!cols'].push({wpx: w[n]})}const range = { s: { c: 10000000, r: 10000000 }, e: { c: 0, r: 0 } }for (let R = 0; R !== data.length; ++R) {for (let C = 0; C !== data[R].length; ++C) {if (range.s.r > R) range.s.r = Rif (range.s.c > C) range.s.c = Cif (range.e.r < R) range.e.r = Rif (range.e.c < C) range.e.c = Cconst cell = { v: data[R][C] }if (cell.v == null) continueconst cellRef = XLSX.utils.encode_cell({ c: C, r: R })if (typeof cell.v === 'number') cell.t = 'n'else if (typeof cell.v === 'boolean') cell.t = 'b'else if (cell.v instanceof Date) {cell.t = 'n'cell.z = XLSX.SSF._table[14]cell.v = datenum(cell.v)} else cell.t = 's'ws[cellRef] = cell}}if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range)return ws
}
function Workbook () {if (!(this instanceof Workbook)) return new Workbook()this.SheetNames = []this.Sheets = {}
}function s2ab (s) {const buf = new ArrayBuffer(s.length)const view = new Uint8Array(buf)for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFFreturn buf
}/** th => 表头* data => 数据* fileName => 文件名* fileType => 文件类型* sheetName => sheet页名*/
export default function toExcel ({ th, data, fileName, fileType, sheetName, w }) {data.unshift(th)const wb = new Workbook()const ws = dataTows(data, w)sheetName = sheetName || 'sheet1'wb.SheetNames.push(sheetName)wb.Sheets[sheetName] = wsfileType = fileType || 'xlsx'var wbout = XLSX.write(wb, { bookType: fileType, bookSST: false, type: 'binary' })fileName = fileName || '列表'saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), `${fileName}.${fileType}`)
}

总结

jsonToExcel函数的封装是为了便于前端导出excel文件。

JSON数据转EXCEL相关推荐

  1. JSON数据导出Excel表

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

  2. excel两个表格数据对比_vue实现json数据导出Excel表格

    因为项目的需要, 需要从前端导出表格,今天一个坑踩了一个小时,特别分享给大家 Vue导出json数据到Excel表格 一,安装依赖(三个缺一不可) npm install file-saver --s ...

  3. php输出json到表格,Vue如何导出json数据到Excel电子表格方法

    本文主要介绍了Vue导出json数据到Excel电子表格的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助到大家. 一.安装依赖(前面基本一样) npm install file- ...

  4. vue中导出json数据为excel表格并保存到本地

    继我上次成功利用vue和elemen把excel的数据导入至前端vue,因为excel表中的数据有些必填项没有填写或者填写错误(比如写错字)所以就要将没有成功导入的数据导出成一份excel表并保存至本 ...

  5. Python爬虫项目:爬取JSON数据存储Excel表格与存储图片

    随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战.搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Googl ...

  6. 如何在线快速把json数据转excel表格

    工作中经常会遇到需要把json转成可视化的结构数据,例如excel,否则json数据根本没法阅读,本人工作中之前是把微信好友转出来是json格式,需要转成excel才能方便阅读,这里推荐一个在线转js ...

  7. JS中将 JSON 数据转换为 Excel 表格的详细步骤如下:

    工作中 后端 那为兄弟 用java把execl的数据转为json格式发我了,他问我能不能用js把josn在转为execl格式 然后 我就开始了 项目地址 下载 xlsx 库 在使用 xlsx 库之前, ...

  8. Java操作json数据导入Excel

    话不多说,直接上代码 package com.linkage.bss.crm.commons;import net.sf.json.JSONArray; import net.sf.json.JSON ...

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

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

  10. 用Notepad++ 宏功能 将json数据转换为EXCEL

    JSON文件: {"hdBus": "sd","hdCode": "Code","hdType": ...

最新文章

  1. 【算法笔记】哈密顿问题
  2. BPW-21光电二极管的特性测试
  3. HTML怎么把文字分栏_PPT文字巨多!领导还不让删,怎么排版才高大上?
  4. 软件测试技术 中医体质判定表,中医体质分类及判定自测表.pdf
  5. python获取月份字符串_python 正则表达式获取字符串中所有的日期和时间
  6. JavaSE各阶段练习题----文件和IO
  7. 移动端70+fps!谷歌新出高效实时视频目标检测
  8. java变量和方法的覆盖和隐藏(翻译自Java Tutorials)
  9. php多个表查询的方法_php+mysql+ajax实现单表多字段多关键词查询的方法
  10. win10如何与终端电脑连接服务器,教程 | Windows 10 下在命令行窗口使用 ssh 连接服务器...
  11. iOS 在CollectionView上做展开收起动画
  12. macOS Ventura 13.0 (22A380) 正式版发布,ISO、IPSW、PKG 下载
  13. 洛谷 P4238 【模板】多项式乘法逆
  14. shell脚本循环执行任务的脚本
  15. UML类图的辅助构建的逻辑代码
  16. location指令
  17. Libra为何而生?Facebook为何要给 Libra创建Move语言?Calibra技术负责人给出了回答...
  18. 爬虫抓取京东、苏宁、唯品会商品价格
  19. 离线地图下载和webGIS简单应用
  20. APPS BFC-11-75-03B 75欧RF变压器替Mini-Circuit TC1-1T

热门文章

  1. 图表背后的秘密 | 技术指标讲解:布林带指标
  2. 100+个程序员开发必备参考手册(在线及下载)
  3. Flash Timer的用法 计时器
  4. 使用Spider提取数据(爬取起点中文网)
  5. 渗透测试专业术语——攻击篇
  6. 【元胞自动机】基于元胞自动机实现艺术图像处理附matlab代码
  7. java-日记本(一)
  8. matlab男女声识别,matlab男女声音识别
  9. verilog实现格雷码(Gray Code)与二进制编码转换
  10. 产品规划立项流程(CDP)