最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

POI

IT圈 admin 13浏览 0评论

POI

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

!!!!!

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

POI

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

!!!!!

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

发布评论

评论列表 (0)

  1. 暂无评论