永发信息网

poi读取Excel,怎么判断这个单元格是否是合并,

答案:2  悬赏:20  手机版
解决时间 2021-03-27 20:04
  • 提问者网友:轻浮
  • 2021-03-26 23:53
poi读取Excel,怎么判断这个单元格是否是合并,
最佳答案
  • 五星知识达人网友:末日狂欢
  • 2021-03-27 01:29
//判断表中是否含有合并单元格
public boolean hasMerged() {
return sheet.getNumMergedRegions() > 0 ? true : false;
}

// 判断指定区域内是否含有合并单元格
public boolean hasMerged(Region region) {
for (int row = region.getRowFrom(); row < region.getRowTo(); row++) {
for (short col = region.getColumnFrom(); col < region.getColumnTo(); col++){
for (int i = 0; i < sheet.getNumMergedRegions(); i++) {
Region r = sheet.getMergedRegionAt(i);
if (r.contains(row, col)) {
return true;
}
}
}
}
return false;
}
全部回答
  • 1楼网友:等灯
  • 2021-03-27 02:35
//poi-3.7.jar

public void getCombineCell(HSSFSheet sheet, List list) {
// 获得一个 sheet 中合并单元格的数量
int sheetmergerCount = sheet.getNumMergedRegions();
// 遍历合并单元格
for (int i = 0; i < sheetmergerCount; i++) {
// 获得合并单元格加入list中
CellRangeAddress ca = sheet.getMergedRegion(i);
list.add(ca);
}
}

public static Boolean isCombineCell(List listCombineCell,
HSSFCell cell, HSSFSheet sheet) {
int firstC = 0;
int lastC = 0;
int firstR = 0;
int lastR = 0;
for (CellRangeAddress ca : listCombineCell) {
// 获得合并单元格的起始行, 结束行, 起始列, 结束列
firstC = ca.getFirstColumn();
lastC = ca.getLastColumn();
firstR = ca.getFirstRow();
lastR = ca.getLastRow();
if (cell.getColumnIndex() <= lastC&& cell.getColumnIndex()>= firstC) {
if (cell.getRowIndex() <= lastR && cell.getRowIndex() >= firstR) {
return true;
}
}
}
return false;
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯