我正在尝试在一行中添加两个合并区域,如下所示:
// Cell Range Address
CellRangeAddress cellRangeAddress_1 = new CellRangeAddress(0, 0, 3, 6);
CellRangeAddress cellRangeAddress_2 = new CellRangeAddress(0, 0, 7,9);
// Creating cells
cell = row.createCell(3); // 1
cell.setCellStyle(headingStyle);
cell.setCellValue("CoLUMN 1");
cell = row.createCell(4); // 2
cell.setCellStyle(headingStyle);
cell.setCellValue("COLUMN 2");
合并第一列并显示“COLUMN 1”。合并第二列但不显示文本!
我做错了还是这个错误?我正在使用Apache POI 3.7。
答案 0 :(得分:3)
您没有正确显示“COLUMN 2”。您正在创建两个单元格值,并且可能会调用addMergedRegion
以稍后合并单元格。但是当存在合并区域时,它不会影响它合并的单元格的内容。
您的第一个合并区域(0,0,3,6)表示第一行(D1:G1)中的单元格3到6,它覆盖了您创建的两个单元格。 Excel将仅显示合并区域中左上角单元格的内容,因此仅显示“COLUMN 1”。 “第2列”不会被移开。内容已存在,但合并后的区域在Excel中查看时会隐藏它。
您的第二个合并区域(0,0,7,9)表示第一行(H1:J1)中的单元格7到9,但根据您提供的代码,没有内容。
我怀疑你想要第一个合并区域中的“COLUMN 1”和第二个合并区域中的“COLUMN 2”。文本“COLUMN 1”已正确地位于第一个合并区域中。您只需将第二个单元格的列索引更改为7。
cell = row.createCell(7); // 2