前言

新公司的后台经常有一些数据导出的功能,而不少情况是导出筛选出来的数据(没有分页的那种)。

这个时候,再让后端去跑一遍逻辑,有点浪费,如果前端可以自己做完就完美了。

SheetJS(js-xlsx)

项目地址:sheetjs

因为需求比较简单,只是导入导出,目前还没遇到什么问题。

官方有 Pro 版,看到有人说过,有很多版本,具体报价还是看诉求。

兼容性

使用方式

官方的 README.md 已经介绍的很详细了,下面简单介绍一下。

使用CDN

<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>

使用NPM

npm install xlsx

官方demo

官方的 demo 还是蛮多的,链接:github

有部分 demo 可能存在问题,看的时候最好运行一遍。

简单下载示例

这里演示了 aoa_to_sheetjson_to_sheet 两种方式。

还有 table_to_sheet 可以直接将 DOM 直接转换成 excel。目前没有这方面诉求,也就没尝试这个方式,猜测可能对于 DOM 有一些要求。

Demo 传送门

/*** JSON转换Excel*/
function json2Sheet () {let json = [{"姓名": "张三","性别": "男","年龄": 18},{"姓名": "李四","性别": "女","年龄": 19},{"姓名": "王二麻","性别": "未知","年龄": 20}]// 实例化一个工作簿let book = XLSX.utils.book_new()// 实例化一个Sheetlet sheet = XLSX.utils.json_to_sheet(json, {header: ['姓名', '性别', '年龄']})// 将Sheet写入工作簿XLSX.utils.book_append_sheet(book, sheet, 'Sheet1')// 写入文件,直接触发浏览器的下载XLSX.writeFile(book, 'json2Sheet.xlsx')
}/*** 数组转换Excel*/
function array2Sheet () {let data = [['姓名', '性别', '年龄'],['张三', '男', '18'],['李四', '女', '19'],['王二麻', '未知', '20']]// 实例化一个工作簿let book = XLSX.utils.book_new()// 实例化一个Sheetlet sheet = XLSX.utils.aoa_to_sheet(data)// 将Sheet写入工作簿XLSX.utils.book_append_sheet(book, sheet, 'Sheet1')// 写入文件,直接触发浏览器的下载XLSX.writeFile(book, 'array2Sheet.xlsx')
}

简单解析示例

这里是针对 input:file 上传之后的结果进行解析的。

主要用到了两个方法:XLSX.readXLSX.utils.sheet_to_aoa

Demo 传送门

/*** JSON转换Excel*/
function parseExcel (fileDom) {let file = fileDom.files[0]let reader = new FileReader()let rABS = typeof FileReader !== "undefined" && (FileReader.prototype||{}).readAsBinaryStringif (rABS) {reader.readAsBinaryString(file)} else {reader.readAsArrayBuffer(file)}reader.onload = function(e) {let data = e.target.resultif (!rABS) {data = new Uint8Array(data)}let workBook = XLSX.read(data, {type: rABS ? 'binary' : 'array'})workBook.SheetNames.forEach(name => {let sheet = workBook.Sheets[name]let json = XLSX.utils.sheet_to_json(sheet, {raw: false,header: 1})// TODO 处理数据})}
}

最后

更多的功能还是要通过阅读官方的文档完成。

SheetJS生成/解析Excel相关推荐

  1. Java基础系列19:使用JXL或者POI生成和解析Excel文件

    一 简介 如题所示,当我们需要在Java中解析Excel文件时,可以考虑使用JXL或POI的API来解析. 二者的区别如下: jxl现在基本上没被维护了,最近一次更新时间还是几年前.相反,poi属于A ...

  2. Unity编译器 《策划表编表工具》 Excel转Json自动生成解析c#代码

    Unity编译器 <策划表编表工具> Excel转Json自动生成解析c#代码 1.表格数据结构解释 2.Excel文件路径 3.C#代码与Json自动生成路径 点击下载依赖Dll程序集 ...

  3. SheetJS - XLS sheet_to_json() 方法解析 Excel 时不解析表格标题(表格第一行或N行)

    前言 官方文档:https://github.com/rockboom/SheetJS-docs-zh-CN 在 Vue 项目中,做 Excel(*.xls) 导入并预览表格功能时, 出现了表格第一行 ...

  4. java代码使用http请求解压zip包并解析xml_Javascript 是如何解析 Excel 文件的?

    最近要做一个导入导出 Excel 的功能,上一次做这个功能的时候,还是用的 Java Apache POI,这是一个用 Java 编写的免费开源的跨平台的 Java API,能够对 Microsoft ...

  5. JavaScript纯前端解析Excel文件

    最近在开发时候遇到了这样的一个需求:需要在前端通过解析Excel将Excel中的值进行回传填入.我想在实际的开发过程中,肯定大家也会遇到这样的需求,在这介绍一个比较不错的JS工具库:js-xlsx,及 ...

  6. js-xlsx 使用总结 实现前端解析excel

    背景 解析excel数据,前端或后端都可实现,考虑到当前需求为 导入并且预览表格数据,用户可对数据进行修改,最终提交的为用户修改后的数据,所以采用前端解析的方式更为合理. 依赖项 1.js-xlsx库 ...

  7. 利用js-xlsx.js插件实现Excel文件导入并解析Excel数据成json数据格式

    <!--本文转载于网络,有太多一样的文章,不知道原作者是哪位了,就不注明出处了.这里记载下来,用于自己的学习借鉴--><!DOCTYPE html><html lang= ...

  8. [转]VS2010+MFC解析Excel文件中数据

    本文转自:http://www.vcfans.com/2010/08/vs2010-mfc-excel-file-in-the-data-analysis.html 前两天折腾一个小功能,需求是解析E ...

  9. js前端解析excel文件

    使用纯Javascript解析excel文件. 使用的是开源的解析excel的js库:sheetjs.github地址:https://github.com/SheetJS/js-xlsx 首先引用J ...

最新文章

  1. 获取AFP共享的文件夹及其权限
  2. 【Cocosd2d实例教程六】Cocos2d实现屏幕背景的自动滚动
  3. 005 定位控件输入call
  4. 20211201 (正定矩阵A+正定矩阵B)的最小特征值 ≥ 正定矩阵A的最小特征值+正定矩阵B的最小特征值
  5. JVM内存堆布局图解分析
  6. Scala分支控制 if-else之单分支的使用
  7. 架构(三层架构)、框架(MVC)、设计模式三者异同点
  8. 6月7日 PowerPoint 版本支持的媒体格式(跨office版本演示需要了解)
  9. java后端简历项目经历_JAVA后端开发工程师个人简历模板
  10. 笔记本BIOS启动项中找不到新装的固态硬盘解决
  11. HDMI音视频传输协议
  12. Photoshop在线版图片处理工具
  13. 路由器注册灯闪烁没网络
  14. Mobento:能搜索视频中说过的话
  15. 大数据Spark(四十四):Structured Streaming概述
  16. 36氪2022年Q3总收入同比增长两位数超预期,连续第四个季度盈利,广告收入同比增长20%
  17. 一位期货人的总结:大道至简,悟者大成
  18. 原创安卓手机QQ7.0登录界面动态背景视频实现方案
  19. 深度学习入门(转)(备用)
  20. Grub for DOS/NTLDR中文版Climbing定制版第四版(完全淘汰VFloppy)

热门文章

  1. 5.1 Runner构建优化
  2. thinkPHP基于php的枣院二手图书交易系统-计算机毕业设计
  3. 微信公众号之在图片上添加热点链接
  4. 设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法
  5. 电话簿程序设计c语言,电话簿管理程序设计.doc
  6. 喜马拉雅主播工具软件:图片OCR文字识别自动转成mp3高品质语音文件
  7. 聪明人做生意,打折也能玩出新鲜感!让顾客觉得现在不买就是亏!
  8. Javase杂谈(十)
  9. Google:我能把文本变成音乐,但这个 AI 模型不能对外发布!
  10. SQL----关于三种其他类型转字符串类型的函数