js实现Excel表格上传解析与导出
1. 二进制读取并解析xlsx文件
xlsx库:用于解析xlsx文件
import * as XLSX from 'xlsx';
let data = await readFile(file); //读取文件二进制
const workbook = XLSX.read(data, { type:'binary'}); // xlsx解析二进制文件
const worksheet = workbook.Sheets[workbook.SheetNames[0]]; // 获取解析的xlsx内容
const data = XLSX.utils.sheet_to_json(worksheet); // 解析的xlsx内容转js对象形式
//读取文件的二进制并返回
function readFile(file) {
return new Promise(resolve => {
let reader = new FileReader()
reader.readAsBinarySTring(file)
reader.onload = ev => {
resolve(ev.target.result)
}
})
}
2. 浏览器将js对象导出成xlsx文件
import * as XLSX from 'xlsx';
// 导出的数据
const data = [
{ 姓名: '小明1', 年龄: 18, 电话: 110 },
{ 姓名: '小明2', 年龄: 19, 电话: 110 },
{ 姓名: '小明3', 年龄: 20, 电话: 110 },
];
const sheet = XLSX.utils.json_to_sheet(data); // json数据转sheet数据格式
const book = XLSX.utils.book_new(); // 新创建一个表格容器
XLSX.utils.book_append_sheet(book, sheet, 'sheetName'); // 数据加入名为'sheetName'的表格
XLSX.writeFile(book, `user${ new Date().getTime()}.xls`); // 写入xls文件并且浏览器导出
还没有评论,来说两句吧...