使用 xlsx 下载 xlsx 文件

使用 xlsx 下载 xlsx 文件:

import { writeFileXLSX, utils } from 'xlsx';

export const downloadSheet = (dataSource: any[], sheetName?: string) => {
  const workbook = utils.book_new();
  const workSheet = utils.json_to_sheet(dataSource);

  // TODO: 根据接口合并行列,计算第一行和第二行的

  // s 意为 start ,即开始的单元格
  // r 是 row ,表示行号,从 0 计起
  // c 是 col ,表示列号,从 0 计起
  const merge = [
    // 纵向合并,范围是第1列的行1到行2
    { s: { r: 0, c: 0 }, e: { r: 1, c: 0 } },
    // 纵向合并,范围是第2列的行1到行2
    { s: { r: 0, c: 1 }, e: { r: 1, c: 1 } },
    // 横向合并,范围是第1行的列3到列5
    { s: { r: 0, c: 2 }, e: { r: 0, c: 4 } },
    // 横向合并,范围是第1行的列6到列11
    { s: { r: 0, c: 5 }, e: { r: 0, c: 10 } },
    // 横向合并,范围是第1行的列12到列17
    { s: { r: 0, c: 11 }, e: { r: 0, c: 16 } },
    // 横向合并,范围是第1行的列18到列23
    { s: { r: 0, c: 17 }, e: { r: 0, c: 22 } },
    // 横向合并,范围是第1行的列24到列29
    { s: { r: 0, c: 23 }, e: { r: 0, c: 28 } },
    // 横向合并,范围是第1行的列30到列35
    { s: { r: 0, c: 29 }, e: { r: 0, c: 34 } },
  ];
  workSheet['!merges'] = merge;
  // sheet0 是工作表的名称

  utils.book_append_sheet(workbook, workSheet, 'Sheet1');
  writeFileXLSX(workbook, sheetName || 'mySheet.xlsx', {
    bookType: 'xlsx',
  });
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值