我想在特定列中排列整个单元格,而不是单个单元格

时间:2015-12-25 12:58:10

标签: java excel apache-poi

我使用POI并尝试安排整个列。但只有我发现的方式是安排单个细胞。虽然我发现sheet.setDefaultColumnStyle()并尝试使用此功能,但它根本不起作用。 你能让我知道使用setDefaultColumnStyle()或其他方式的方式。

下面的代码是我安排单个单元格的代码。

    xlsxFile = new File("data.xlsx");
    wb = new XSSFWorkbook();

    cellStyle = wb.createCellStyle();
    cellStyle.setAlignment(CellStyle.ALIGN_CENTER);
    cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
    row = sheet1.createRow(0);
    cell = row.createCell(1);
    cell.setCellValue("name");
    cell.setCellStyle(cellStyle);

我的英语技巧有点尴尬。谢谢你的阅读。如果有什么奇怪的,请告诉我。

1 个答案:

答案 0 :(得分:3)

这似乎是Apache POI中的一个错误。有两个问题:

首先:在Sheet.setDefaultColumnStyle使用定义了对齐的样式后,POI不会在applyAlignment="true"的{​​{1}}元素标记中设置xf。但它应该,因为只有这将导致Excel将该样式的对齐应用于新单元格。

第二:POI本身不会将此样式应用于该列中的新单元格。它应该在styles.xml的相应s="1"标记中设置c,其中1是样式编号。

所以我们必须解决方法:

Sheet1.xml