腾讯云授权服务中心
五万用户的选择,您身边的云计算顾问
发布日:2022-01-07 21:00 阅读数:
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' });
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中只要确定了要合并区域的开始坐标和结束坐标就确定合并未知了。
编辑:航网科技 来源:腾讯云
本文版权归原作者所有 转载请注明出处
Copyright © 2011-2020 www.hangw.com. All Rights Reserved 深圳航网科技有限公司 版权所有 增值电信业务经营许可证:粤B2-20201122 - 粤ICP备14085080号
微信扫一扫咨询客服
全国免费服务热线
0755-36300002