xlsx合并单元格简单介绍
在使用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中只要确定了要合并区域的开始坐标和结束坐标就确定合并未知了。
xlsx合并单元格简单介绍的更多相关文章
- python之xlsx合并单元格
需求背景: 工作中将数据保存xlsx文件之后,里面每一列中有很多重复的看着很不美观,需要将每一列中的相同值合并起来,是表格看起来美观简洁 处理前 处理后 直接上代码(内涵注释讲解) "&qu ...
- Apache POI 合并单元格--简单解释版带Demo
合并单元格所使用的方法: sheet.addMergedRegion( CellRangeAddress cellRangeAddress ); CellRangeAddress 对象的构造 ...
- Java Controller下兼容xls和xlsx且可识别合并单元格的excel导入功能
1.工具类,读取单元格数据的时候,如果当前单元格是合并单元格,会自动读取合并单元格的值 package com.shjh.core.util; import java.io.IOException; ...
- C# 获取Excel中的合并单元格
C# 获取Excel中的合并单元格 我们在制作表格时,有时经常需要合并及取消合并一些单元格.在取消合并单元格时需要逐个查找及取消,比较麻烦.这里分享一个简单的方法来识别Excel中的合并单元格,识别这 ...
- Aspose.Cells 首次使用,用到模版填充数据,合并单元格,换行
Aspose.Cells 首次使用,用到模版填充数据,合并单元格,换行 模版格式,图格式是最简单的格式,但实际效果不是这种,实际效果图如图2 图2 ,注意看红色部分,一对一是正常的,但是有一对多的订单 ...
- 【POI xlsx】使用POI对xlsx的单元格样式进行设置 / 使用POI对xlsx的字体进行设置
涉及到的样式都在代码中有说明: package com.it.poiTest; import java.io.FileNotFoundException; import java.io.FileOut ...
- NPOI之Excel——合并单元格、设置样式、输入公式
首先建立一个空白的工作簿用作测试,并在其中建立空白工作表,在表中建立空白行,在行中建立单元格,并填入内容: //建立空白工作簿 IWorkbook workbook = new HSSFWorkboo ...
- 【记录】解析具有合并单元格的Excel
最近公司让做各种数据表格的导入导出,就涉及到电子表格的解析,做了这么多天总结一下心得. 工具:NOPI 语言:C# 目的:因为涉及到导入到数据库,具有合并单元格的多行必然要拆分,而NPOI自动解析的时 ...
- 让我头疼一下午的Excel合并单元格
Excel导出常见问题 excel导出其实不算什么难事 在网上copy下模板代码,填充自己的业务数据,提供一个http接口基本就可以得到你要导出的数据了. 但是,凡事都有例外,截止今天,excel导出 ...
- java使用freemarker模板导出word(带有合并单元格)文档
来自:https://blog.csdn.net/qq_33195578/article/details/73790283 前言:最近要做一个导出word功能,其实网上有很多的例子,但是我需要的是合并 ...
随机推荐
- JVMCFRE003 bad major version问题
项目启动异常日志 [21-11-18 23:46:58:166 CST] 00000020 DispatcherSer I org.springframework.web.servlet.Framew ...
- 【2】locust性能测试原理分析+登录测试脚本+总结
login_per_test1.py #对登录功能进行单点性能测试(一组测试数据)#发送首页请求,通过locust进行性能测试from locust import HttpLocust,task,T ...
- Huawei-2488H-V5服务器基础配置与系统安装
0x00 前言简述 描述: 由于最近公司来了一批华为的服务器以及存储,来的时候真的感到非常意外因为从中标到接货超过了1个半月,其间还因为各种事进行推延: 在现场实施人员完成服务器上架以及测试后,由于业 ...
- 肖sir__面试第十天课程__模拟面试讲解
一.面对面模拟面试1.打印好简历2.带好手机,录制自己回答的问题,总结,反思(内部),关闭手机和闹钟(外部)3.有笔试题,可以拍照发群里4.可以携带耳塞(适合女生)5.语速流程6.礼貌用语(面试官好, ...
- centos 7 更改Jenkins 主目录
默认为:/var/lib/jenkiins 1 创建更改后的目录 (所有步骤用root执行!!!) mkdir -p /data/jenkiins 2 将原有目录数据拷贝到更改后的目录 cp -r ...
- 渗透测试工具&导航合集
#前言 表哥们一般都有自己强大的工具库,今天我也稍作整理,分享交流出来一部分 #信息收集 ####dirbuster kali自带的一款工具,fuzz很方便 ####gorailgun 一款自动化做的 ...
- 请求接口类型blob,下载文件
axiosGet () { var This = this var url = '/group1/M00/00/21/MejEvGOX_zOAL2kiAAAAUhB5Iqg138.txt?token= ...
- ProcessLassoLauncher.exe
html, body { font-size: 15px } body { font-family: Helvetica, "Hiragino Sans GB", 微软雅黑, &q ...
- PHP开发支付时开启OPENSSL扩展
开发支付功能时,发现openssl类的方法都找不到,大概知道是没有扩展,在网上收集了PHP开启openssl扩展的方法. windows下开启方法: 1: 首先检查php.ini中:extension ...
- java.lang.NoSuchMethodException: com.titan.domain.BigPackage.setEMail(java.lang.String)
List<Map<String, Object>> list 转 List<Bean>报异常. ... Method method = classType.getM ...