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

来源:互联网 发布:怎样提升淘宝店铺信誉 编辑:程序博客网 时间:2024/05/20 14:24

项目需要读取上传的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。


!!!!!

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


原创粉丝点击