0

我正在尝试在一行中添加两个合并区域,如下所示:

// 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。

4

1 回答 1

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
于 2013-04-22T17:06:46.783 回答