前端Vue - 导出 excl 的几种方法

插件 file-saver 方式

1、需要下载插件 file-saver,执行如下命令

npm i file-saver

yarn add file-saver

2、由于响应的结果是二进制流,需要在接口设置 responseType:blob

export const exportExcel = () => {
   return request.get(
      '/sys/user/export',{ responseType: 'blob' }
   )
}

3、在响应拦截器判断是不是 blob 格式,如果是就直接 retrun 出去

if (response.data instanceof Blob) return response.data

4、页面调用

    async exportExcel() {
      const res = await exportExcel()
      // 参数1: blob 对象
      // 参数2: 文件名
      fileSaver.saveAs(res, '员工信息表.xlsx')
    }

插件 xlsx 方式

网站地址:Frameworks and Bundlers | SheetJS Community Edition

demo 步骤如下:

1、执行命令下载

npm rm --save xlsx
npm i --save https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz

2、执行 demo 步骤

3、将 demo 数据替换成接口返回的数据

4、数据处理和净化

 4.1 数据重新排列

 4.2 替换自定义表头名称

 4.3 数据最终处理净化 

         枚举:

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用vue-json-excel导出xlsx的步骤: 1.首先,安装vue-json-excel依赖包: ```shell npm install vue-json-excel --save ``` 2.在main.js中引入vue-json-excel并注册为全局组件: ```javascript import Vue from 'vue' import App from './App.vue' import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; import JsonExcel from "vue-json-excel"; // 引入vue-json-excel Vue.component("downloadExcel", JsonExcel); // 注册为全局组件 Vue.use(ElementUI); new Vue({ render: h => h(App), }).$mount('#app') ``` 3.在需要导出Excel的组件中,使用downloadExcel组件并传入数据和表头信息: ```html <template> <div> <download-excel :data="tableData" :columns="tableColumns" :filename="'excel文件名'" :sheetname="'sheet名称'" :title="'表格标题'" :autoWidth="true" :mergeCell="[]" > <el-button type="primary">导出Excel</el-button> </download-excel> </div> </template> <script> export default { data() { return { tableData: [ { name: '张三', age: 18, gender: '男' }, { name: '李四', age: 20, gender: '女' }, { name: '王五', age: 22, gender: '男' } ], tableColumns: [ { label: '姓名', field: 'name' }, { label: '年龄', field: 'age' }, { label: '性别', field: 'gender' } ] } } } </script> ``` 其中,data为需要导出的数据,columns为表头信息,filename为导出Excel文件名,sheetname为sheet名称,title为表格标题,autoWidth为是否自动调整列宽,mergeCell为需要合并的单元格信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值