Apache POI / Libre Office问题

时间:2016-07-19 12:36:10

标签: java excel apache-poi libreoffice

我正在使用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); 但它似乎没有效果

0 个答案:

没有答案