返回

基于xlsx库在前端实现Excel导入、导出

前端

引入库

import * as XLSX from 'xlsx';

读取Excel

// 将文件转换为二进制
const file = document.querySelector('input[type=file]').files[0];
const binary = XLSX.read(file, {type: 'binary'});

// 将二进制转换为工作表
const workbook = XLSX.read(binary, {type: 'workbook'});

// 获取工作表名称
const sheetNames = workbook.SheetNames;

// 获取第一个工作表
const worksheet = workbook.Sheets[sheetNames[0]];

// 获取单元格数据
const data = XLSX.utils.sheet_to_json(worksheet);

导出Excel

// 获取需要导出的数据
const data = [['姓名', '年龄', '性别'], ['张三', '20', '男'], ['李四', '22', '女']];

// 创建工作表
const worksheet = XLSX.utils.json_to_sheet(data);

// 创建工作簿
const workbook = XLSX.utils.book_new();

// 将工作表添加到工作簿
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

// 将工作簿导出为二进制
const binary = XLSX.write(workbook, {type: 'binary'});

// 将二进制转换为文件
const file = new Blob([binary], {type: 'application/octet-stream'});

// 触发下载
const link = document.createElement('a');
link.href = URL.createObjectURL(file);
link.download = 'data.xlsx';
link.click();

总结

本文讲解了如何在前端实现导入、导出Excel,并附上了代码实例。希望能够帮助大家更轻松地实现前端导入、导出Excel的需求。

参考