4、使用js-xlsx库,实现真正的.xls.xlsx导出
参考https://github.com/SheetJS/js-xlsx
①安装
npm install xlsx
或者
bower install js-xlsx
②导入
官方github上有给各种框架的demo:
可以根据项目框架选择导入方式,这里是vue:
import XLSX from ‘xlsx’
③使用
let workbook = XLSX.utils.table_to_book(wholeTable)
let xls = XLSX.write(workbook, {
bookType: 'xls', // 生成的文件格式
bookSST: false, // 是否生成Shared String Table,官方解释是,如果开启生成速度会下降,但在低版本IOS设备上有更好的兼容性
type: 'base64', // 编码方式
})
这里xlsx提供了多种方法:
写入:
aoa_to_sheet 将JS数组的数组([ […],[…],[…] ])转换为工作表
json_to_sheet 将json对象数组转换为工作表
table_to_sheet 将DOM TABLE元素转换为工作表
sheet_add_aoa 将JS数据数组添加到现有工作表中
sheet_add_json 将json对象数组添加到现有工作表中
读取:
sheet_to_json 将工作表对象转换为JSON对象数组
sheet_to_csv 将工作表转换成csv
sheet_to_txt 生成UTF16格式的文本
sheet_to_html 生成HTML输出
sheet_to_formulae 生成公式列表(具有值回退)
单元格和单元格地址操作:
format_cell 生成单元格的文本值(使用数字格式)
encode_row / decode_row 在0索引行和1索引行之间转换
encode_col / decode_col 在0索引列和列名之间进行转换
encode_cell / decode_cell 转换单元格地址
encode_range / decode_range 转换细胞范围