vue 纯前端导出excel表格

文章介绍了如何在Vue.js项目中安装和使用xlsx库来实现Excel文件的导出。首先通过npm或yarn安装xlsx库,然后在main.js中全局引入并挂载到Vue.prototype上。接着展示了创建和配置workbook对象的基本步骤,包括构造数据数组、转换为工作表及添加到工作簿,最后调用writeFile方法导出为Excel文件。

1.安装 xlsx 库:使用 npm 或 yarn 安装 xlsx 库依赖。

npm install xlsx -- save

或

yarn add xslx

2.全局导入 xlsx 库 main.js

import * as XLSX from "xlsx";

Vue.prototype.XLSX = XLSX;

3.导出

  <el-button type="primary" @click="exportExcel()">导出</el-button>


   exportExcel() { 
      // 构造 workbook 对象
      let table = [
        ["姓名","性别","年龄"],["哈哈","男","18"],
      ];
      const ws = this.XLSX.utils.aoa_to_sheet(table);
      const wb = this.XLSX.utils.book_new();
      this.XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
      // 导出表格
      this.XLSX.writeFile(wb, "import.xlsx");
    },

### 如何在 Vue2 中实现前端导出 Excel 表格 #### 使用 `Blob` 和 `FileSaver.js` 对于较小的数据集,可以直接在前端处理并生成 Excel 文件。这可以通过组合使用 JavaScript 的 Blob 对象以及 FileSaver.js 库来完成。 ```javascript import XLSX from 'xlsx'; import { saveAs } from 'file-saver'; export function exportToExcel(data, fileName) { const ws = XLSX.utils.json_to_sheet(data); const wb = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'array' }); try { const blob = new Blob([wbout], { type: "application/octet-stream" }); saveAs(blob, `${fileName}.xlsx`); } catch (e) { console.error(e); } } ``` 此方法适用于中小型数据表单的快速导出操作[^1]。 #### 利用第三方库简化流程 为了更方便地处理复杂的表格结构,可以采用专门用于 JSON 数据转 Excel 的工具包如 vue-json-excel 或者 Export2Excel.js 来辅助工作。这些库提供了更加简洁易懂的方式来进行转换,并且能够很好地兼容各种浏览器环境。 ```html <template> <json-excel :data="tableData" name="report.xls">导出</json-excel> </template> <script> // 导入 json-excel 组件 import JsonExcel from 'vue-json-excel/dist/vue-json-excel.umd.min' export default { components: { JsonExcel, }, data() { return { tableData: [ {"name": "张三", "age": 20}, {"name": "李四", "age": 22} ] }; } }; </script> ``` 这种方法特别适合于那些只需要简单导出当前视图内可见内容的应用场景[^2]。 当面对更大规模的数据集合时,则建议采取服务器端渲染方案,即由服务端负责组装好完整的 Excel 文档再推送给客户端进行下载。这种方式不仅可以减轻前端的压力,还能有效规避因内存溢出而导致程序崩溃的风险。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值