合并单元格
- 代码如下
//参数依次代表的意思是:开始行,结束行,开始列,结束列;值都为int类型的数据
cellRangeAddress = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
sheet.addMergedRegion(cellRangeAddress);
在excel文件中第一个单元格是从第1行,第一列开始的,我们在java中使用POI来操作excel的时候是从0开始计数的
-
实现如下图的单元格合并
即为(6,11,2,7),合并完成后出现如下的大白格子
image.png
向合并过后的单元格填充数据
合并后的单元格,相当于变成了一个大的单元格,重点在于他是一个单元格,你只能向这个单元格填充一次数据,多次添加数据,后面的数据会覆盖前面的数据,
就以上图合并后的单元格为例
//合并第7行到第12行,第3列到第8列的单元格为一个单元格
CellRangeAddress cellRangeAddress = new CellRangeAddress(6,11,2,7);
sheet.addMergedRegion(cellRangeAddress);
//得到当前单元格
XSSFRow row = sheet.getRow(6);
XSSFCell cell = row.getCell(2);
//填入数据
cell.setCellValue("测试数据");
上述代码只能添加一行数据
向合并后的单元格添加多行数据
还是以上图为例子,代码如下
在设置值的时候添加换行符
cell.setCellValue("\n"+第一行数据+"\n"+第二行数据+"\n"+第三行数据);
这样做了之后,导出的excel文件显示的数据还是并列在一行,当你点击后,它才会换行,所以还需要一句代码。
在你设置单元格样式的时候让该单元格支持换行
CellStyle cs = wb.createCellStyle();
cs.setWrapText(true);//重点就是这句话
cell.setCellStyle(cs);
设置单元格类型为公式
//设置单元格类型为公式
cell.setCellType(HSSFCell.CELL_TYPE_FORMULA);
// 设置公式内容
cell.setCellFormula("B3*C3");
网友评论