java poi 合并单元格

时间:2021-02-17 06:15:46

poi 合并 单元格

XSSFWorkbook wb = new XSSFWorkbook();
		
XSSFSheet sheet = wb.createSheet();
//这个就是合并单元格
//参数说明:1:开始行 2:结束行  3:开始列 4:结束列
//比如我要合并 第二行到第四行的    第六列到第八列     sheet.addMergedRegion(new CellRangeAddress(1,3,5,7));
sheet.addMergedRegion(new CellRangeAddress(0,0,0,1));

XSSFRow row = sheet.createRow(number);


需要注意的地方(不对的地方请指教)

感觉唯一要注意的地方就是:需要先设置 合并单元格,然后再 生成 行。


比如我们要生成的单元格为:

java poi 合并单元格

1工作站 左位置 1序号 2000订单号 1成品号/型号
左位置 2序号
左位置 3序号
右位置 4序号



代码可以这样写:

sheet.addMergedRegion(new CellRangeAddress(0,3,0,0));
sheet.addMergedRegion(new CellRangeAddress(0,3,3,3));
sheet.addMergedRegion(new CellRangeAddress(0,3,4,4));

//第一行数据
XSSFRow row = sheet.createRow(0);
row.createCell(0).setCellValue("工作站");
row.createCell(1).setCellValue("位置");
row.createCell(2).setCellValue("序号");
row.createCell(3).setCellValue("订单号");
row.createCell(4).setCellValue("成品号/型号");

//第二行数据
XSSFRow row = sheet.createRow(number);
//row.createCell(0).setCellValue("工作站");//因为和上面的行合并了,所以不用再次 赋值了
row.createCell(1).setCellValue("位置");
row.createCell(2).setCellValue("序号");
//row.createCell(3).setCellValue("订单号");//因为和上面的行合并了,所以不用再次 赋值了
//row.createCell(4).setCellValue("成品号/型号");//因为和上面的行合并了,所以不用再次 赋值了



第三行数据和 第二行是一样的