java导出excel 边框不全_java POI导出excel,合并单元格边框消失

在使用Java的POI库导出Excel时,遇到合并单元格后边框只显示在第一个单元格的问题。解决方法是在创建行时,为所有被合并的单元格创建并设置样式,确保每个单元格都有边框。通过预先创建足够的单元格并设置样式,然后进行合并,可以避免边框消失的问题。
摘要由CSDN通过智能技术生成

业务是导出一个报表,要求有一个跨多列的表头,肯定要用到合并单元格,但合并后边框消失。网上的一些解决办法是重写合并单元格方法,但弄清楚原因后,其实没必要。

原来是这样的:

0b569c45835f6e213c68351e437a192c.png

合并后就第一个有边框,其余全成空白了,上代码:

HSSFCellStyle style = wb.createCellStyle(); 创建样式

style.setAlignment(HSSFCellStyle.ALIGN_RIGHT); //字体右对齐

style.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下边框

style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框

style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框

style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框

HSSFRow row = sheet.createRow(1);

HSSFCell cel = row.createCell(0);

cel.setCellValue("编制人:" + "admin" + " 日期:" + sdf.format(new Date()));

cel.setCellStyle(style);

for (int j = 1; j <= 11; j++) {

cel = row.createCell(j);

cel.setCellStyle(style); //style为带边框的样式 上面有定义

cel.setCellValue("");

}

运行后:

2ba9be210cb77a942d3a5d5be5827cab.png

哈哈!完美的解决了

分析:创建的行的的时候只row.createCell(0),当然只有第一列有边框,其余没边框了,然后一合并,结果就显而易见出现图一的情况了。但要是创建等多的单元格,每个单元格都加上边框,再合并就没事了。

还是搞清原理比较好。还有一个根据单元格内容自适应高宽的问题,官方给的有问题,还没解决。>_<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值