vue项目中导出带合并元格的表格

首先安装插件

npm install xlsx
或者
yarn add xlsx

其次导入 也可以全局引入

import XLSX from 'xlsx'

然后 可以写个函数将里面内容填入

var aoa = [
          [
            '羊别', 
            '阶段', 
            '昨日存栏', 
            '出生数', 
            '调入', 
            '购入数', 
            '转入数', 
            '死亡数', 
            '销售数', 
            '调出', 
            '转出数', 
            '今日存栏', 
            '备注'
            ], // 特别注意合并的地方后面预留2个null
          [
            '哺乳羔羊', 
            '(—0-2月龄)', 
            '27523', 
            '480', 
            '0', 
            '0', 
            '0', 
            '0', 
            '0', 
            '29', 
            '0', 
            '27894', 
            ''
            ], // 特别注意合并的地方后面预留2个null
          [
            '育成母羊', 
            '3月龄', 
            '1425', 
            '4687', 
            '44', 
            '1', 
            '22', 
            '55', 
            '6', 
            '88', 
            '7', 
            '464', 
            ''
            ], // 特别注意合并的地方后面预留2个null
          [
            null, 
            '3月龄', 
            '1425', 
            '4687', 
            '44', 
            '1', 
            '22', 
            '55', 
            '6', 
            '88', 
            '7', 
            '464', 
            ''
            ], // 特别注意合并的地方后面预留2个null
          [
            null, 
            '3月龄', 
            '1425', 
            '4687', 
            '44', 
            '1', 
            '22', 
            '55', 
            '6', 
            '88', 
            '7', 
            '464', 
            ''
            ], // 特别注意合并的地方后面预留2个null
          [
            null, 
            '3月龄', 
            '1425', 
            '4687', 
            '44', 
            '1', 
            '22', 
            '55', 
            '6', 
            '88', 
            '7', 
            '464', 
            ''
            ], // 特别注意合并的地方后面预留2个null
          [
            '育肥羊', 
            '3月龄', 
            '1425', 
            '4687', 
            '44', 
            '1', 
            '22', 
            '55', 
            '6', 
            '88', 
            '7', 
            '464', 
            ''
            ], // 特别注意合并的地方后面预留2个null
          [
            null, 
            '3月龄', 
            '1425', 
            '4687', 
            '44', 
            '1', 
            '22', 
            '55', 
            '6', 
            '88', 
            '7', 
            '464', 
            ''
            ], // 特别注意合并的地方后面预留2个null
          [
            null, 
            '3月龄', 
            '1425', 
            '4687', 
            '44', 
            '1', 
            '22', 
            '55', 
            '6', 
            '88', 
            '7', 
            '464', 
            ''
            ], // 特别注意合并的地方后面预留2个null
          [
            null, 
            '3月龄', 
            '1425', 
            '4687', 
            '44', 
            '1', 
            '22', 
            '55', 
            '6', 
            '88', 
            '7', 
            '464', 
            ''
            ], // 特别注意合并的地方后面预留2个null
          [
            '青年母羊', 
            '3月龄', 
            '1425', 
            '4687', 
            '44', 
            '1', 
            '22', 
            '55', 
            '6', 
            '88', 
            '7', 
            '464', 
            ''
            ], // 特别注意合并的地方后面预留2个null
      ];
      
      const filename='导出合并单元格的表格.xlsx'
      // Excel第一个sheet的名称
      const ws_name = 'Sheet1'
      const wb = XLSX.utils.book_new()
      const ws = XLSX.utils.aoa_to_sheet(aoa)
      ws['!merges'] = [
        // 设置A1-C1的单元格合并
        {s: {r: 2, c: 0}, e: {r: 5, c: 0}},
        {s: {r: 6, c: 0}, e: {r: 9, c: 0}},
      ]
      XLSX.utils.book_append_sheet(wb, ws, ws_name) // 将数据添加到工作薄
      XLSX.writeFile(wb, filename) // 导出Excel
    },
```触发这个事件就可以下载表格了 如果后端给的数据注意留空格的用null占位,(其中s表示合并单元格,r是列,c是行,数据从0开始为第一个(个人见解))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue ,你可以使用第三方库 `xlsx-style` 来设置导出表格时的单元格样式,包括合并元格的边框样式。下面是一个简单的例子: 首先,安装 `xlsx-style` 库: ``` npm install xlsx-style --save ``` 然后,在组件引入 `xlsx-style` 库: ``` import * as XLSX from 'xlsx'; import * as XLSXStyle from 'xlsx-style'; ``` 接着,定义一个方法来生成 Excel 文件: ``` methods: { exportExcel() { // 创建工作簿和工作表 const wb = XLSX.utils.book_new(); const ws = XLSX.utils.json_to_sheet(this.data); // 合并元格 const mergeCells = [ { s: { r: 1, c: 1 }, e: { r: 2, c: 1 } }, { s: { r: 1, c: 2 }, e: { r: 1, c: 3 } } ]; ws['!merges'] = mergeCells; // 设置单元格样式 const style = { border: { top: { style: 'thin' }, bottom: { style: 'thin' }, left: { style: 'thin' }, right: { style: 'thin' } } }; for (const cell in ws) { if (cell[0] === '!') continue; ws[cell].s = style; } // 将工作表添加到工作簿 XLSX.utils.book_append_sheet(wb, ws, 'Sheet1'); // 导出 Excel 文件 const wbout = XLSXStyle.write(wb, { bookType: 'xlsx', type: 'array' }); const blob = new Blob([wbout], { type: 'application/octet-stream' }); const fileName = 'example.xlsx'; const downloadLink = document.createElement('a'); downloadLink.href = window.URL.createObjectURL(blob); downloadLink.download = fileName; document.body.appendChild(downloadLink); downloadLink.click(); document.body.removeChild(downloadLink); } } ``` 在这个例子,我们定义了一个 `exportExcel` 方法来生成 Excel 文件。首先,我们创建一个工作簿和一个工作表。然后,我们定义了一个 `mergeCells` 数组来合并元格。接着,我们定义了一个 `style` 对象来设置单元格样式,包括边框样式。最后,我们将工作表添加到工作簿,然后导出 Excel 文件。 注意,这个例子的 `data` 属性是一个数组,用来存储导出的数据。你需要根据自己的需求来修改这个属性。另外,这个例子合并元格和单元格样式都是固定的,你需要根据自己的需求来修改这些值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值