sheetjs 用于读取和导出文件,如Excel、csv
安装
1、CDN src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"
2、$ npm i xlsx --save
3、$ npm install file-saver --save // 依赖插件,用于对文件的生成保存 https://github.com/eligrey/FileSaver.js
使用
let XLSX = require('xlsx'); // 引用插件
let FileSaver = require('file-saver');
API
一、读写:
XLSX.readFile('test.xlsx') - 读取文件
XLSX.read();
XLSX.write(wb, opt);
XLSX.writeFile(wb, filename, write_opts);
二、方法
XLSX.utils.table_to_book(document.getElementById('tableau'), {sheet:"Sheet JS"}); // 通过table遍历成导出文件
XLSX.utils.json_to_book() // 将组装sheet需要的格式,见下面数据格式
XLSX.utils.sheet_to_json(ws, {header:1, raw:true})
三、输入
aoa_to_sheet() - 将JS数据数组转换为工作表
json_to_sheet() - 将一个JSON对象数组转换为工作表
table_to_sheet() - 将DOM TABLE元素转换为工作表
四、出口: 将Sheet生成的数据转成其它格式:
XLSX.utils.sheet_to_csv() - 生成CSV
XLSX.utils.sheet_to_txt() - 生成UTF16格式文本
XLSX.utils.sheet_to_html() - 生成HTML
XLSX.utils.sheet_to_json() - 生成一个对象数组
XLSX.utils.sheet_to_formulae() - 生成公式列表
Example 将Sheet生成的数据转成html:
let wb = XLSX.utils.table_to_book(document.getElementById('tab1'), {sheet:"Sheet JS"});
let sheetData = wb.Sheets['Sheet JS'];
console.log(XLSX.utils.sheet_to_html(sheetData));
五、通过Blob对象转成文件
let wb = XLSX.utils.table_to_book(document.getElementById('tab1'), {sheet:"Sheet JS"});
let fname = '借款.xlsx';
FileSaver.saveAs(new Blob([s2ab(wb)], {type:"application/octet-stream"}), fname);
function s2ab(s) {
if(typeof ArrayBuffer !== 'undefined') {
let buf = new ArrayBuffer(s.length);
let view = new Uint8Array(buf);
for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
} else {
let buf = new Array(s.length);
for (var i=0; i!=s.length; ++i) buf[i] = s.charCodeAt(i) & 0xFF;
return buf;
}
}
格式
let wb = XLSX.utils.table_to_book(document.getElementById('tableau'), {sheet:"Sheet JS"}); // sheet定义的值是返回中数据SheetNames的值
{
SheetNames:["SheetJSaaa"], // 这里存的名与Sheets中的名对应
Sheets:{
"SheetJSaaa": {
!merges: [],
!ref: "A1:F7", // 指定数据的开始和结束
A1: {t: 's', v: '创建时间'}, // t:
A2: {t: "n", v: 43205.613541666666, z: "m/d/yy"},
B1: {t: "s", v: "业务类型"},
B2: {t: "s", v: "PAY_DAY_LOAN"}
.....
}
}
}
一、wb - workbook对象
let wb = XLSX.utils.table_to_book(document.getElementById('tableau'), {sheet:"Sheet JS"});
1、wb.SheetNames - 工作表的名
2、wb.Sheets[sheetname] - 返回工作表中存储的数据
3、wb.Props - 存储标准属性的对象
4、wb.Workbook - 存储工作簿属性
二、修改单元格的值
t - 单元格类型:b布尔值,n数字,e错误,s字符串,d日期
https://docs.sheetjs.com/#cell-object 单元格对象
let first_sheet_name = wb.SheetNames[0];
let workSheet = wb.Sheets[first_sheet_name];
let desired_cell = workSheet['A1'].v; // 取出v的值
三、设置xlsx单元格行、列样式
https://docs.sheetjs.com/#formulae
| https://www.gitbook.com/book/sheetjs/docs/details
| https://docs.sheetjs.com/#sheetjs-js-xlsx // 官方文档
国内查看评论需要代理~