取消合并单元格在电子表格中,我们可以使用sheet.addMergedRegion(rowFrom,rowTo,colFrom,colTo);
在板材加合并单元格,但我已经与它合并单元格表,我想取消合并这些细胞。如何使用Apache POI的Java库
有什么办法取消合并片的细胞不会产生使用Apache POI新表?
取消合并单元格在电子表格中,我们可以使用sheet.addMergedRegion(rowFrom,rowTo,colFrom,colTo);
在板材加合并单元格,但我已经与它合并单元格表,我想取消合并这些细胞。如何使用Apache POI的Java库
有什么办法取消合并片的细胞不会产生使用Apache POI新表?
推进到一个答案评论...
你想用的方法Sheet.removeMergedRegion(int)
这需要该区域的指标,当你加它,你得到了。否则,您可以使用getNumMergedRegions()和getMergedRegion(int)遍历这些区域以找到要删除的索引
我刚才发现在每个区域方法之后,内部会检查现有区域的数量。例如。在删除区域1之后,一切都是新计算出来的,如size是previousSize-1,而sheet.getNumMergedRegions()也是一样。所以对于我来说,我将所有区域添加到列表中并从表格中删除它们。因为每次都重新计算id,所以我总是使用id 0。
出于某种原因,下面的代码没有立即删除所有合并的地区:
logger.info("Number of merged regions = " + sheet.getNumMergedRegions());
for (int i = 0; i < sheet.getNumMergedRegions(); i++) {
logger.info("Removing merged region " + (i + 1));
sheet.removeMergedRegion(i);
}
logger.info("\nNumber of merged regions = " + sheet.getNumMergedRegions());
在控制台中我看到这一点:
Number of merged regions = 7
Removing merged region 1
Removing merged region 2
Removing merged region 3
Removing merged region 4
Number of merged regions = 3
修复:
while (sheet.getNumMergedRegions() > 0) {
logger.info("Number of merged regions = " + sheet.getNumMergedRegions());
for (int i = 0; i < sheet.getNumMergedRegions(); i++) {
logger.info("Removing merged region " + (i + 1));
sheet.removeMergedRegion(i);
}
}
不会[Sheet.removeMergedRegion(https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Sheet.html#removeMergedRegion%28int%29)是吗? – Gagravarr
感谢您的回复,但我无法使用sheet.removeMergedRegion解除合并! –
为什么不呢?你会得到什么错误?出了什么问题?什么不起作用? – Gagravarr