如何使用Apache POI同时合并单元格和设置值?

时间:2015-10-20 05:35:02

标签: java excel apache-poi

我想在我的Excel模板文件中合并一些单元格,然后在合并单元格中设置值。这是我的java代码。在我添加set value part之前,它适用于合并单元格。但是当我只添加set value part时,即使没有单元格合并也似乎没有任何改变。我还尝试在set value part之后移动merge cells part,然后办公室提醒我修复输出excel文件。

如何同时合并单元格和设置值?

for (int sht = 0; sht < 3; sht++) {
    sheet = workbook.getSheetAt(sht);
    row = 1;
    for (Data d : list) {
        // set value part
        cell = sheet.getRow(row).getCell(0);
        cell.setCellValue(d.a);
        cell = sheet.getRow(row).getCell(1);
        cell.setCellValue(d.b);
        cell = sheet.getRow(row).getCell(2);
        cell.setCellValue(d.c);
        // merge cells part
        sheet.addMergedRegion(new CellRangeAddress(row, row + 1, 0, 0));
        sheet.addMergedRegion(new CellRangeAddress(row, row + 1, 1, 1));
        sheet.addMergedRegion(new CellRangeAddress(row, row + 1, 2, 2));
        sheet.addMergedRegion(new CellRangeAddress(row, row + 1, 3, 3));
        //
        row += 2;
    }
}

1 个答案:

答案 0 :(得分:4)

您可以在Excel单元格中设置CellValue,然后根据您的要求合并单元格。

cell = sheet.getRow(row).getCell(0);
cell.setCellValue(d.a);

您可以使用sheet.addMergedRegion(new CellRangeAddress(rowFrom,rowTo,colFrom,colTo));

示例:

sheet.addMergedRegion(new CellRangeAddress(1,1,4,2)); will merge from D2 to F2. 

请记住它是基于零的索引。

详情请参阅BusyDeveloper's Guide