我正在使用Apache POI创建电子表格。有些单元格有换行符,我希望单元格的高度符合内容的高度。
我使用以下代码:
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); 但它似乎没有效果