js-xlsx
npm install xlsx --save
读取
这里记录一下最经常用的方法,到时候复杂处理再记录
以nodejs 的方式
// nodejs 方式读取文件
const filePath = './test.xlsx';
const ws = xlsx.readFile(filePath, { type: 'binary'}); // 传文件路径读取文件
const sheet = ws.Sheets["Sheet1"]; // 指定工作表
const data = xlsx.utils.sheet_to_json(sheet, {header:1}); // 对工作表的内容进行json 转化
const header = data.slice(0, 1); // 第一行就是我们的header
const body = data.slice(1); // 数据body
browser 方式,上传文件的形式读取excel
<input type="file" @change="fileChange" />
function fileChange(e) {
var files = e.target.files;
console.log(files)
var fileReader = new FileReader();
fileReader.readAsBinaryString(files[0]);
fileReader.onload = (ev) => {
// 读取上传的文件,后面的跟上面类似
const file = ev.target.result;
const wb = xlsx.read(file, { type: 'binary' });
const sheet = wb.Sheets["Sheet1"];
const data = xlsx.utils.sheet_to_json(sheet, {header:1});
};
},
写 Excel
nodejs 方式直接导出excel
/**
* @params dataSource 简单的数据结构
* @params excelName 表名
*/
type source {
name: string,
address: string,
phone: number
}
function json2Excel(dataSource: source, excelName: string) {
let wb = xlsx.utils.book_new()
let ws = xlsx.utils.aoa_to_sheet(dataSource); // 将简单的数据对象写到工作表里
xlsx.utils.book_append_sheet(wb, ws, "SheetJS")
xlsx.writeFile(wb, `${excelName}.xlsx`);
}