先前项目中导出表格基本都是使用file-saver,后台主要输出文件流形式;
这次项目中表格展示内容是动态的,需要进行表头切换、快捷透视筛选,后端处理比较麻烦,所以需要前端导出当前展示的数据到excel中。
注:想直接看示例的,可以直接跳到文章最后面的示例。
github地址:GitHub - SheetJS/sheetjs: SheetJS Community Edition -- Spreadsheet Data Toolkit
SheetJS地址:https://sheetjs.com
目录
SheetJS
各种电子表格格式的解析器和编写器。来自官方规范、相关文档和测试文件的 Pure-JS 洁净室实现。强调解析和写入的健壮性,跨格式特性兼容统一的 JS 表示,ES3/ES5 浏览器兼容回 IE6。
安装
npm i xlsx
引入
import XLSX from 'xlsx'
使用工作簿
XLSX.utils.book_new
创建一个新的工作簿对象
/* 创建一个新的工作簿对象 */
var wb = XLSX.utils.book_new();
注:新工作簿是空白的,不包含任何工作表。如果工作簿为空,写入函数将出错。
XLSX.utils.book_append_sheet
将工作表附加到工作簿
/* 将工作表添加到工作簿 */
XLSX.utils.book_append_sheet ( wb , ws , ws_name ) ;
界面
XLSX
是浏览器中暴露的变量和导出的节点变量
XLSX.version
是库的版本(由构建脚本添加)。
XLSX.SSF
是格式库的嵌入式版本。
解析函数
XLSX.read(data, read_opts)
尝试解析data
.
XLSX.readFile(filename, read_opts)
尝试读取filename
和解析。
解析选项在解析选项部分进行了描述。
写函数
XLSX.write(wb, write_opts)
尝试编写工作簿 wb
XLSX.writeFile(wb, filename, write_opts)
尝试写入wb
到filename
。在基于浏览器的环境中,它将尝试强制客户端下载。
XLSX.writeFileAsync(wb, filename, o, cb)
尝试写入wb
到