通过SheetJS(XLSX)前端解析、生成Excel文件
sheetjs
📗 SheetJS Spreadsheet Data Toolkit -- New home https://git.sheetjs.com/SheetJS/sheetjs
项目地址:https://gitcode.com/gh_mirrors/sh/sheetjs
免费下载资源
·
npm install xlsx -S
import XLSX from 'xlsx';
// 解析Excel
// 此处省略获取文件方式,假设file为获取到的文件
const parseExcel = file => {
var reader = new FileReader();
reader.onload = function (e) {
var data = e.target.result;
var workbook = XLSX.read(data, {
type: 'binary'
});
var first_worksheet = workbook.Sheets[workbook.SheetNames[0]];
// XLSX自带了一个工具把导入的数据转成json
var jsonArr = XLSX.utils.sheet_to_json(first_worksheet, {header: 1});
return jsonArr;
};
reader.readAsBinaryString(file);
}
// 根据json生成下载
let mockData = [
{
name: '张三',
age: 18,
sex: '男'
},
{
name: '李四',
age: 15,
sex: '女'
}
];
// 设置表头
mockData.unshift({
name: '姓名',
age: '年龄',
sex: '性别'
});
var worksheet = XLSX.utils.json_to_sheet(mockData, {
header: ['name', 'sex', 'age'], // 自定义表头顺序
skipHeader: true, // 隐藏键值,可自行改成false下载后对比差异
});
// begin,把每个单元格格式都设置为文本,如果不需要修改单元格格式可省略此处代码
var range = XLSX.utils.decode_range(worksheet['!ref']);
for (var row = range.s.r; row <= range.e.r; row++) {
for (var columns = range.s.c; columns <= range.e.c; columns++) {
var cellName = XLSX.utils.encode_cell({c: columns, r: row});
worksheet[cellName].z = '@';
}
}
// end
var new_workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(new_workbook, worksheet, 'Sheet1');
// 设置文件名,自动执行下载
XLSX.writeFile(new_workbook, '人员信息.xlsx');
GitHub 加速计划 / sh / sheetjs
34.82 K
8 K
下载
📗 SheetJS Spreadsheet Data Toolkit -- New home https://git.sheetjs.com/SheetJS/sheetjs
最近提交(Master分支:2 个月前 )
3f44ddd9 - 9 个月前
5b4806bf - 1 年前
更多推荐
已为社区贡献1条内容
所有评论(0)