合并单元格所使用的方法:
sheet.addMergedRegion( CellRangeAddress cellRangeAddress );
CellRangeAddress 对象的构造方法需要传入合并单元格的首行、最后一行、首列、最后一列。
CellRangeAddress cra=new CellRangeAddress(0, 3, 3, 9);
怎样把数据写入合并后的单元格中
- 首先要查看你 CellRangeAddress 构造方法的firstcol index
- 创建firstcol cell对象
- cell 的set 方法写数据
在合并单元格的后一个位置写数据
- 查看 CellRangeAddress 构造方法的lastcol index
- 创建lastcol+1 cell
- cell 的set方法写数据
以下是demo:
1 FileOutputStream fos=new FileOutputStream("D:\\13.xls"); ??2 ???????????3 ????????Workbook wb=new HSSFWorkbook(); ??4 ???????????5 ????????Sheet sheet=wb.createSheet(); ??6 ????????/* ?7 ?????????* 设定合并单元格区域范围 ?8 ?????????* ?firstRow ?0-based ?9 ?????????* ?lastRow ??0-based 10 ?????????* ?firstCol ?0-based 11 ?????????* ?lastCol ??0-based 12 ?????????*/ ?13 ????????CellRangeAddress cra=new CellRangeAddress(0, 3, 3, 9); ???????14 ??????????15 ????????//在sheet里增加合并单元格 ?16 ????????sheet.addMergedRegion(cra); ?17 ??????????18 ????????Row row = sheet.createRow(0); ?19 ??????????20 ????????Cell cell_1 = row.createCell(3); ?21 ??????????22 ????????cell_1.setCellValue("When you‘re right , no one remembers, when you‘re wrong ,no one forgets ."); ?23 ??????????24 ????????//cell 位置3-9被合并成一个单元格,不管你怎样创建第4个cell还是第5个cell…然后在写数据。都是无法写入的。 ?25 ????????Cell cell_2 = row.createCell(10); ?26 ??????????27 ????????cell_2.setCellValue("what‘s up ! "); ?28 ??????????29 ????????wb.write(fos); ?30 ??????????31 ????????fos.close(); ?
Apache POI 合并单元格--简单解释版带Demo
原文地址:https://www.cnblogs.com/yanjie-java/p/8184338.html