在Apache POI / Libre Office问题中,行的自动大小高度

我正在使用Apache POI创build一个电子表格。 有些单元格有换行符,我希望单元格的高度适合内容的高度。

我正在使用下面的代码:

public static void main(String[] args) throws IOException { HSSFWorkbook workbook=new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("Amap"); // sheet.autoSizeColumn(0); HSSFCellStyle style = workbook.createCellStyle(); style.setWrapText(true); addRow(sheet,style, (short) 0); addRow(sheet,style, (short) 1); addRow(sheet,style, (short) 2); FileOutputStream fos = new FileOutputStream("test1.xls"); workbook.write(fos); fos.flush(); fos.close(); System.out.println("OK !"); } private static HSSFRow addRow(HSSFSheet sheet, HSSFCellStyle style, short rowNumber) { // HSSFRow row = sheet.createRow(rowNumber); // row.setRowStyle(style); -- has no effect // row.setHeight((short)-1); -- has no effect HSSFCell c = row.createCell(0); c.setCellStyle(style); c.setCellValue("x"); c = row.createCell(1); c.setCellStyle(style); c.setCellValue( "a\nb\nc"); c = row.createCell(2); c.setCellStyle(style); c.setCellValue( "y"); return row; } 

当我用Excel打开生成的文件时,一切正常。

但是当我用Open Office打开文件时,只有第一行是正确的。 第二行和第三行的高度太小

一个主意 ?

注意:我试图添加row.setRowStyle(style); 和row.setHeight((short)-1); 但似乎没有效果