有关java通过poi处理excle中合并单元格的问题 15

java通过poi读取当前excle将一级二级三级编号组合(如第一行组合后应为10010101、第二行为10010102),将组合后的数值复制到全新的excle中第一行第... java 通过poi读取当前excle 将一级二级三级编号组合(如第一行组合后应为10010101、第二行为10010102),将组合后的数值复制到全新的excle中第一行第一列中 以此类推本人初学者 麻烦大师们能提供可用的代码 个人觉得难点就在第一个单元格为合并单元格不知道怎么与二、三级菜单对应。 展开
 我来答
百度网友0419ffe
2013-09-05
知道答主
回答量:10
采纳率:0%
帮助的人:1.4万
展开全部
难点是:第一个单元格为合并单元格,不知道怎么与第二,第三级菜单对应
方案一:将合并的单元格还原
步骤:
1.获取合并区域,将合并区域还原,并且还原后的值为之前合并区域值内容。
2.重新按照行读取即可以。

创建数组做映射,无需生成文件

private void decodeMergeCell(HSSFSheet templateSheet) {
int numMerge = templateSheet.getNumMergedRegions();
CellRangeAddress region = null;

while(numMerge >0){
region = templateSheet.getMergedRegion(0);

if (region.getFirstColumn() == 0 || region.getFirstColumn() == 1) {

HSSFRow row = templateSheet.getRow(region.getFirstRow());
HSSFCell cell = row.getCell(region.getFirstColumn());
String value = cell.getStringCellValue();
templateSheet.removeMergedRegion(0);

for (int j = region.getFirstRow(); j <=region.getLastRow(); j++) {

cell = templateSheet.getRow(j).getCell(
region.getFirstColumn());
cell.setCellValue(value);
}
}
numMerge = templateSheet.getNumMergedRegions();
}
小狂中E
2013-09-05 · TA获得超过1418个赞
知道大有可为答主
回答量:1514
采纳率:66%
帮助的人:1031万
展开全部
HSSFSheet.getNumMergedRegions取合并格个数,HSSFSheet.getMergedRegionAt取第几个合并格的合并区域
循环几下就可取到当前格的合并行数
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式