今天发现一个BUG,说生成的EXCEL的报表中某些地方没有边框
一看,原来是合并中的单元格只有第一个格有边框
代码如下:
- //styleColumnHead2为配置好的样式,里面有给边框加边线的操作
- row = sheet.createRow((short)1);
- cellTitle = row.createCell((short)0);
- sheet.addMergedRegion(new Region(1,(short)0,1,(short)(columnMax-1)));
- cellTitle.setCellValue(this.setHSSFRichTextString("单位部门:" + dept.getDeptname()));
- cellTitle.setCellStyle(styleColumnHead2);
//styleColumnHead2 为配置好的样式,里面有给边框加边线的操作 row = sheet.createRow((short)1); cellTitle = row.createCell((short)0); sheet.addMergedRegion(new Region(1,(short)0,1,(short)(columnMax-1))); cellTitle.setCellValue(this.setHSSFRichTextString("单位部门:" + dept.getDeptname())); cellTitle.setCellStyle(styleColumnHead2);
在以上代码中是先合并了单元格,再在第一格单元格中设样式
以是解决方式
- row = sheet.createRow((short)1);
- cellTitle = row.createCell((short)0);
- sheet.addMergedRegion(new Region(1,(short)0,1,(short)(columnMax-1)));
- cellTitle.setCellValue(this.setHSSFRichTextString("单位部门:" + dept.getDeptname()));
- cellTitle.setCellStyle(styleColumnHead2);
- for(int i=1;i<columnMax;i++){
- cellTitle = row.createCell((short)i);
- cellTitle.setCellValue(setHSSFRichTextString(""));
- cellTitle.setCellStyle(styleColumnHead2);
- }