Java POI关于EXCEL拆分合并单元格并重新赋值,以及空行移除

这篇博客探讨了在使用Java POI库处理Excel时,如何有效地去除合并单元格并重新赋值。文章提到了Excel中空单元格的两种类型,以及使用POI的Region操作来统计和遍历合并单元格的方法。对于单列多行的合并单元格,提供了一种移除策略。此外,还分享了删除空行的常见情况,通过移动行的方式实现空行移除,行覆盖的思想贯穿其中。
摘要由CSDN通过智能技术生成

业务资料Excel为主,要导入数据库的时候发现还得先去除合并单元格
---------------------------以下理解不可避免出现谬误-------------------------------
Excel单元格的“空”有两种。一种是Null,可以getCell再判断,直接getvalue会报错
还有一种是CellType.BLANK(旧版是Cell.CELL_TYPE_BLANK)

POI的Region操作是读一个sheet(页)的所有合并单元格
相当于你有多少划分好的区域,存在方法进行统计和遍历

每个合并单元格,默认对应区域的第一行第一列的Cell有效,值为合并单元格显示的值
用removeRegion,原区域的其他Cell会变成CellType.BLANK(也有可能是null?)

去除单列多行的合并单元格可以这样操作:

//合并单元格数量
int sheetMergeCount = hssfSheet.getNumMergedRegions();
//合并单元格位置(地址)
CellRangeAddress range = (CellRangeAddress) hssfSheet.getMergedRegion(k);
//移除,有余的会变为BLANK
hssfSheet.removeMergedRegion(k);
HSSFCell cfirst = hssfSheet.getRow(firstRow).getCell(firstColumn);
for (int m = firstRow + 1; m <= lastRow; m++) {
	HSSFCell tc = hssfSheet.getRow(m).getCell(firstColumn);
	copy
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值