apache POI将数据与数据合并,导致数据丢失

时间:2018-02-20 16:13:52

标签: java apache-poi

我们在每个单元格中显示一个数字和百分比,如“2(100%)”。 我想对Number部分和百分比部分应用不同的格式。似乎无法在单元格中应用不同的格式。

所以我试图将数据写入2个连续的单元格,这些单元格具有不同的格式,然后将其合并。

但合并后,第二个单元格中的数据丢失了。 我如何合并,两个单元格数据合并到单个单元格?

HSSFFont percentFont = wb.createFont();
percentFont.setFontName(HSSFFont.FONT_ARIAL);
percentFont.setFontHeightInPoints((short) 10);
percentFont.setBold(true);
percentStyle.setFont(percentFont);
for (int i = 0; i < rows.size(); i++) {
    List<String> rowData = rows.get(i);
    int rowNumber = 9 + i;
    HSSFRow row1 = sheet.createRow(rowNumber);
    int colNumber = 0;
    for (int j = 0; j < count; j++) {
        HSSFCell hssfMainCell = row1.createCell(colNumber);
        HSSFCell hssfPercentCell = row1.createCell(colNumber + 1);
        hssfPercentCell.setCellStyle(percentStyle);

        String val = rowData.get(j);
        String percentage = "(" + rowData.get(percentageColumns.get(j)) + "%)";
        ;

        hssfMainCell.setCellValue(val);
        hssfMainCell.setCellStyle(rightAligned);
        if (percentageColumns.get(j) != null) {
            hssfPercentCell.setCellValue(percentage);
            percentStyle.setAlignment(CellStyle.ALIGN_RIGHT);
            hssfPercentCell.setCellStyle(percentStyle);
            sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, colNumber, colNumber + 1));
            colNumber++;
            colNumber++;
        }
    }
}

0 个答案:

没有答案