vue导出下载excel

使用xlsx-style导出表格,下载为excel文件,并修改其样式

1,安装三个依赖包

npm install -S file-saver
npm install -S xlsx-style
 npm install -S xlsx
 npm install -D script-loader

2,在项目中创建一个文件夹(比如vendor,一般是在src目录下创建)
把Blob.js 和 Export2Excel.js 和 cpexcel.js 这三个文件夹放到新建的文件夹内.

注意: xlsx-style插件中,dist/cpexcel.js有问题,启动时会出错,所以需要用vendor/cpexcel.js替换下(这里使用build下新增modifyXlsx.js,在webpack.base.conf.js中执行,使用node来实现替换)

首先,把github上vendor目录下的内容复制到本地文件.
其次,修改配制如下

//modifyXlsx.js
//作用:复制vendor下的cpexcel.js到modules_node下xlsx-style/dist/cpexcel.js下
var fs = require('fs');
function copyIt(from, to) {
  console.log("-------写入cpexcel.js---------")
  fs.writeFileSync(to, fs.readFileSync(from));
}

module.exports = {
  copyIt
}


//webpack.base.conf.js
//add  复制文件到指定地方
const ModifyXlsx = require('./modifyXlsx.js');
let fromPath = path.resolve(__dirname,'../src/vendor/cpexcel.js'),
    toPath = path.resolve(__dirname,'../node_modules/xlsx-style/dist/cpexcel.js');
ModifyXlsx.copyIt(fromPath,toPath);

3,在页面中使用Export2Excel.js暴露了两个接口export_table_to_excel和export_json_to_excel,我们常用export_json_to_excel.

//点击导出后,执行如下方法
 handleDownload(){
  require.ensure([], () => {
    const { export_json_to_excel } = require('@/vendor/Export2Excel')    //引入
    const tHeader = ['姓名', '语文', '数学','英语']
    const filterVal = ['name', 'chinese', 'math','english']
    const list = this.tableData
    const data = this.formatJson(filterVal, list)
    export_json_to_excel(tHeader, data, '成绩单')            //传参调用
  })
},
formatJson(filterVal, jsonData) {
  return jsonData.map(v => filterVal.map(j => v[j]))
}

参考链接:https://www.cnblogs.com/qiu-Ann/p/7743897.html
demo地址: https://github.com/yiyueqinghui/exportExcel
xlsx-style文档: https://www.npmjs.com/package/xlsx-style

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Vue导出Excel文件,可以使用以下步骤: 1. 安装依赖:使用npm或yarn安装以下依赖项: ``` npm install file-saver xlsx ``` 2. 创建导出Excel的方法:创建一个方法,该方法会将数据转换为Excel文件并保存到本地。以下是一个示例方法: ``` import XLSX from 'xlsx'; import FileSaver from 'file-saver'; export const exportToExcel = (tableData, fileName) => { const worksheet = XLSX.utils.json_to_sheet(tableData); const workbook = { Sheets: { data: worksheet }, SheetNames: ['data'] }; const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }); const fileData = new Blob([excelBuffer], { type: 'application/octet-stream' }); FileSaver.saveAs(fileData, fileName + '.xlsx'); }; ``` 此方法使用了file-saver和xlsx库,它将JSON数据转换为Excel文件并将其保存到本地。tableData是要导出Excel的数据数组,fileName是要保存的Excel文件名。 3. 在Vue组件中调用导出方法:在Vue组件中,可以将导出方法作为一个方法在methods中定义,并在需要时调用它。以下是一个示例组件: ``` <template> <div> <button @click="exportTable">Export to Excel</button> <table> <thead> <tr> <th>Name</th> <th>Age</th> <th>Email</th> </tr> </thead> <tbody> <tr v-for="(item, index) in tableData" :key="index"> <td>{{ item.name }}</td> <td>{{ item.age }}</td> <td>{{ item.email }}</td> </tr> </tbody> </table> </div> </template> <script> import { exportToExcel } from './exportToExcel'; export default { data() { return { tableData: [ { name: 'John Doe', age: 25, email: '[email protected]' }, { name: 'Jane Smith', age: 30, email: '[email protected]' } ] }; }, methods: { exportTable() { exportToExcel(this.tableData, 'table_data'); } } }; </script> ``` 此组件包含一个按钮和一个表格,表格显示了要导出Excel的数据。单击按钮会调用exportTable方法,该方法将tableData导出Excel文件中,并将文件保存到本地。 这就是在Vue导出Excel文件的基本步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值