POI-获取Excel中合并单元格问题

本文介绍如何使用Java POI库读取Excel中的合并单元格。通过获取合并单元格的数量及范围,实现对Excel数据的有效解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目需要读取上传的excel中的合并单元格。于是找到POI包:

主要是poi-x.x.jar 和 poi-ooxml-x.x.jar包

首先是判断当前sheet页是否存在合并单元格,使用getNumMergedRegions()获取当前sheet页中的合并单元格总数.

如下表总共有8行3列【行:0-7;列:0-2】;其中共有合并单元格A、B、E、F、G、H 6个;

int sheetMergedCount = sheet.getNumMergedRegions();//该值为6

然后获取每个单元格的始末行,使用getMergedRegion(int index)函数获取,该函数返回一个CellRangeAddress 类型的区域, index表示合并单元格索引。

按常规思维,本人以为index  = 0 ,就代表合并单元格A的索引。然而……

下面先看一下代码

CellRangeAddress range = sheet.getMergedRegion(0);//index = 0;

然后用getFirstRow()和getLastRow()分别获取当前合并单元格的始末行。也可以用getFirstColumn()和getLastColumn()获取当前合并单元格的始末列。

System.out.println("0 区域的起始行:"+range.getFirstRow()+",结束行:"+range.getLastRow());

得到的输出是0区域的起始行:5,结束行:7

即就是索引0代表的是合并单元格G。

!!!!!

被这种逻辑打败了!发出来作为一次学习记录,也可以提示有需要的童鞋们!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值