我使用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);
我的英语技巧有点尴尬。谢谢你的阅读。如果有什么奇怪的,请告诉我。
答案 0 :(得分:3)
这似乎是Apache POI中的一个错误。有两个问题:
首先:在Sheet.setDefaultColumnStyle
使用定义了对齐的样式后,POI不会在applyAlignment="true"
的{{1}}元素标记中设置xf
。但它应该,因为只有这将导致Excel将该样式的对齐应用于新单元格。
第二:POI本身不会将此样式应用于该列中的新单元格。它应该在styles.xml
的相应s="1"
标记中设置c
,其中1是样式编号。
所以我们必须解决方法:
Sheet1.xml