vue2踩坑之项目:vue2+element实现前端导出

1.安装插件依赖

npm i --save xlsx@0.17.0 file-saver@2.0.5

2.单页面引入 前端导出插件

import FileSaver from "file-saver";

import * as XLSX from "xlsx";

//html
<el-form-item>
   <el-button type="primary" plain size="mini" @click="goBack">返回</el-button>
</el-form-item>

      <!-- 表格区 v-loading="loading"  -->
      <el-table id="out-table" ref="multipleTable" :data="tableList" class="table" border :header-cell-style="tableHeaderCellStyle">
        <el-table-column type="index" width="50" label="序号" />
        <el-table-column label="充值号" align="center" prop="billId" show-overflow-tooltip />
        <el-table-column label="用户名称" align="center" prop="username" />
        <el-table-column label="充值类型" align="center" prop="type" />
        <el-table-column label="运营商名称" align="center" prop="channelOperatorName" />
        <el-table-column label="充值金额" align="center" prop="money" />
        <el-table-column label="支付钱包" align="center" prop="payTypeDesc" />
        <el-table-column label="操作人" align="center" prop="creator" />
        <el-table-column label="充值时间" align="center" prop="createDate" />
      </el-table>
      
//data
// 表格数据
tableList: [],

//js
   // 初始化数据
    async getTable () {
      this.loading = true;
      let res = await RechargeRecord()
      this.accMoney = res.accMoney;
      this.tableList = res.list;
      // this.total = res.count;
      this.loading = false;
    },
    // 导出excel
    handleExport() {
//需要注意的是:纯前端导出的话  会将百分比变成了小数  解决办法是 在获取表格的时候设置:{ raw: true }
//例如: const wb = XLSX.utils.table_to_book(document.querySelector('#table-ref'), { raw: true })

      let wb = XLSX.utils.table_to_book(document.querySelector("#out-table"),{ raw: true });
      let wbout = XLSX.write(wb, {
        bookType: "xlsx",
        bookSST: true,
        type: "array"
      });
      FileSaver.saveAs(
        new Blob([wbout], { type: "application/octet-stream" }),
        "充值记录.xlsx"
      );
      return wbout;
    },

上一篇文章,

uniapp踩坑之项目:canvas第一次保存是空白图片-CSDN博客文章浏览阅读2次。在ctx.draw()回调生成图片,参考canvasToTempFilePath接口文档。缓存二维码图片canvas路径,把画布转化成临时文件,保存临时文件路径到缓存https://blog.csdn.net/weixin_43928112/article/details/135685206

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue 2.x中使用Element UI来导入和导出Excel,你需要安装element-ui和file-saver插件。 首先,在Vue项目中使用npm或yarn安装Element UI和file-saver插件: ``` npm install element-ui file-saver --save ``` 然后,在Vue组件中引入所需的文件: ```javascript import { Button, Table } from 'element-ui' import XLSX from 'xlsx' import FileSaver from 'file-saver' ``` 在组件中,你需要定义导入和导出Excel的方法。下面是一个简单的示例: ```javascript methods: { // 导入Excel handleImportExcel(file) { const reader = new FileReader() reader.onload = (e) => { const data = new Uint8Array(e.target.result) const workbook = XLSX.read(data, { type: 'array' }) const worksheet = workbook.Sheets[workbook.SheetNames[0]] const jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 }) // 处理导入的Excel数据 console.log(jsonData) } reader.readAsArrayBuffer(file.raw) }, // 导出Excel handleExportExcel() { const jsonData = [ ['姓名', '年龄', '性别'], ['张三', 18, '男'], ['李四', 20, '女'] ] const worksheet = XLSX.utils.aoa_to_sheet(jsonData) const workbook = XLSX.utils.book_new() XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1') const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }) const excelData = new Blob([excelBuffer], { type: 'application/octet-stream' }) FileSaver.saveAs(excelData, 'example.xlsx') } } ``` 最后,在模板中使用Element UI的Button和Table组件,分别绑定导入和导出Excel的方法: ```html <template> <div> <el-button type="primary" @change="handleImportExcel">导入Excel</el-button> <el-table :data="tableData"> <!-- 表格内容 --> </el-table> <el-button type="success" @click="handleExportExcel">导出Excel</el-button> </div> </template> ``` 这样,你就可以在Vue项目中使用Element UI来导入和导出Excel了。当用户选择一个Excel文件时,`handleImportExcel`方法将会被触发,并将Excel数据转换为JSON数据进行处理。而`handleExportExcel`方法则会将JSON数据转换为Excel文件并进行下载。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值