vue 3 中推荐使用 sheetjs(xlsx)实现 excel 导入导出,它轻量、纯前端、支持多种格式;基础导出用 json_to_sheet + writefile,基础导入用 filereader + sheet_to_json;进阶样式可通过 xlsx-js-style 轻量美化或 exceljs 实现高级功能。

Vue 3 项目中配置前端 Excel 导入导出,SheetJS(xlsx)是最轻量、最主流的选择——它不依赖后端,纯浏览器运行,支持 .xlsx/.xls/.csv,开箱即用。
安装 xlsx 库
在项目根目录执行:
npm install xlsx
或使用 pnpm/yarn:
pnpm add xlsx
基础导出:JSON 数据一键生成 Excel
适用于表格列表导出,无需样式定制:
- 准备结构化数据,例如:
[{ id: 1, name: "张三", city: "杭州" }] - 用
XLSX.utils.json_to_sheet()转为工作表 - 新建工作簿并追加该表:
XLSX.utils.book_new()+book_append_sheet() - 调用
XLSX.writeFile(wb, "data.xlsx")触发下载
基础导入:读取 Excel 文件转为 JSON
用户选择文件后,解析首表内容为数组:
- 监听
<input type="file">或el-upload的 change 事件 - 用
FileReader读取为ArrayBuffer - 调用
XLSX.read(data, { type: "array" })解析工作簿 - 取第一张表名:
workbook.SheetNames[0],再用XLSX.utils.sheet_to_json(sheet)转成对象数组
进阶需求:样式与格式控制
原生 xlsx 不支持复杂样式(如背景色、合并单元格),但有三种实用路径:
-
轻量美化:使用
xlsx-js-style(fork 版),支持列宽、行高、字体、填充色等基本样式(需单独安装) -
图片/高级样式:换用
exceljs+file-saver,支持插入图片、条件格式、公式、保护表等(体积更大,适合专业报表) - 混合策略:导出用 xlsx(快),导入仍用 xlsx(兼容好);仅导出需样式的场景才切 exceljs
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











