新闻、帮助、产品更新动态

最新的业界新闻,产品系统更新开发动态,帮助教程和活动发布

用xlsx导出excel表格如何合并表格

发布日:2022-01-07 21:00       阅读数:

在使用xlsx导出excel表格的时候,有时候我们需要将某些表格进行合并,该如何做呢,代码如下:
import XLSX from 'xlsx';
// ...
// xlsxData 是 Excel 的内容
const workSheet = XLSX.utils.aoa_to_sheet(xlsxData);
const workbook = XLSX.utils.book_new();
// 设置工作表的记录范围
// [列号][行号],A1 则代表 A 列的第1行
// 列数一般是已知的(未知时可以设置为ZZ)
// 行数则以 xlsxData 内容的长度结束即可
workSheet['!ref'] = `A1:AI${xlsxData.length}`;
// 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 是工作表的名称
XLSX.utils.book_append_sheet(workbook, workSheet, 'sheet0');
// 执行数据转换文件写入
XLSX.writeFileSync(workbook, '文档名称', {
  bookType: 'xlsx',
  bookSST: true,
  type: 'array'
});
解读代码,我们使用XLSX.utils.aoa_to_sheet生成了一张表之后,只需要设置这张表的['!merges']属性,设置的内容如下:
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 } }
];

这是一个数组,数组每一项为一个对象,对象有两个属性,s和e,分别代表start和end,值分别为一个对象,r代表行,c代表列,可以理解为坐标,在excel中只要确定了要合并区域的开始坐标和结束坐标就确定合并未知了。

 

编辑:航网科技   来源:腾讯云

本文版权归原作者所有 转载请注明出处

联系我们

客服部:深圳市龙华区龙胜商业大厦5楼B5区

业务部:深圳市南山区讯美科技广场2栋12楼1202

资质证书

  • Copyright © 2011-2020 www.hangw.com. All Rights Reserved 深圳航网科技有限公司 版权所有 增值电信业务经营许可证:粤B2-20201122 - 粤ICP备14085080号

    在线客服

    微信扫一扫咨询客服


    全国免费服务热线
    0755-36300002

    返回顶部