vue3导出excel表格

1.目的

导出excel表格,比如说是组件库里面的table的数据。

通过按钮绑定点击事件,导出如上效果的excel表格

2.准备

在项目终端下载所需的npm包,命令: yarn add exceljs    , yarn add file-saver 

3.代码实现

//导入包实现效果
import ExcelJS from 'exceljs';
import FileSaver from 'file-saver';
//定义点击处罚的方法

const outExcelAll = () => {
    let Exceldata = [];
//datasource为表格内的数据,格式为数组包对象,对象内有需要展示的属性,(键值对)
    datasource.value.forEach(item => {
      Exceldata.push(item);
    });
    // 创建工作簿
    const _workbook = new ExcelJS.Workbook();
    // 添加工作表
    const _sheet1 = _workbook.addWorksheet('sheet1');
    // 设置表格内容
    _sheet1.columns = [
      { header: '支付方式', key: 'payWay', width: 16 },
      { header: '总收款', key: 'postingMoney', width: 18 },
    ];
//***********************
const _titleCell = _sheet1.getRow(1);
    // 设置第一行的高度
    _titleCell.height = 30;
    // 设置第一行的字体样式
    _titleCell.font = {
      name: '黑体',
      bold: true,
      size: 12,
      color: {
        argb: 'FF999999'
      }
    };
    // 设置第一行的对齐方式(水平垂直)
    _titleCell.alignment = {
      vertical: 'middle',
      horizontal: 'center'
    };
    //循环数组,将数组一条一条的添加到表格
    console.log(Exceldata);
    Exceldata.forEach(item => {
      console.log(item);
      _sheet1.addRow(item);
    });
    nextTick(() => {
      // 导出表格
      _workbook.xlsx.writeBuffer().then(buffer => {
        let _file = new Blob([buffer], {
          type: 'application/octet-stream'
        });
//可以设置导出表格的文件名
        FileSaver.saveAs(_file, '财务报表.xlsx');
      });
    });
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3 中,你可以使用一些库来导出 Excel 表格,例如 `xlsx` 或 `exceljs`。下面是使用 `xlsx` 库的示例代码: 1. 首先,安装 `xlsx` 库: ```bash npm install xlsx ``` 2. 在你的 Vue 3 项目中,创建一个导出 Excel 表格的方法: ```vue <template> <div> <button @click="exportExcel">导出Excel</button> </div> </template> <script> import XLSX from 'xlsx'; export default { methods: { exportExcel() { // 创建一个Workbook对象 const workbook = XLSX.utils.book_new(); // 创建一个Worksheet对象 const worksheet = XLSX.utils.json_to_sheet([ { Name: 'John', Age: 25, City: 'New York' }, { Name: 'Mike', Age: 30, City: 'Paris' }, { Name: 'Sarah', Age: 28, City: 'London' } ]); // 将Worksheet添加到Workbook中 XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1'); // 将Workbook对象转换为二进制数据流 const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }); // 创建Blob对象 const blob = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); // 创建下载链接并点击下载 const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'my_excel_file.xlsx'; a.click(); // 释放URL对象 window.URL.revokeObjectURL(url); } } }; </script> ``` 在这个示例代码中,我们使用 `xlsx` 库来创建一个 Excel 文件,并将数据写入到文件中。然后,我们将生成的 Excel 文件通过 Blob 对象创建下载链接,并模拟点击下载链接进行下载。 你可以将这段代码放入你的 Vue 3 组件中,并在需要导出 Excel 表格的地方调用 `exportExcel` 方法。 希望对你有所帮助!如果有任何问题,请随时问我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值