2014-02-25 207 views
0

我使用POI将数据附加到现有的excel。但是在追加数据时,编辑前已经存在的excel头文件被压缩到很小的区域。有人可以建议我如何避免这种情况?添加数据后我甚至应用了autoSize,但没用。使用poi自动调整列宽

FileInputStream inputStream = new FileInputStream(new File("dataexcel.xlsx")); 

    XSSFWorkbook workbook = new XSSFWorkbook(intputStream); 
    XSSFSheet sheet = workbook.getSheetAt(0); 
    int rowNum = sheet.getPhysicalNumberOfRows(); 

        int cellNum = 1; 
        Row lastRow = sheet.createRow(rowNum); 

    for(int i =0 ; i<7; i++) 
    { 
        Cell cell = lastRow.createCell(cellNum++); 
        cell.setCellValue(value); 
        cell.setCellStyle(generalStyle); 
    } 

假设报头具有长的文本等"This is very long text"和追加7个值(2,3,1,7,4,6​​,5),以在每个单元到下一行类似上面的现有的Excel。然后,enitre列的宽度收缩到这些单个数字的值,并且直到手动扩展后,标题的文本才几乎看不到。

回答

0

使用autoSizeColumn()方法?

示例您如下

+----------+----------+----------+-------------+ 
| Column A | Column B | Column C | Column D | 
+----------+----------+----------+-------------+ 
| xxx | xxx |This is very long text | 
|   |   |   |    | 
+----------+----------+----------+-------------+ 

如果是表,使自动列大小Column csheet.autoSizeColumn(2);。结果将是

+----------+----------+------------------------+-------------+ 
| Column A | Column B | Column C    | Column D | 
+----------+----------+------------------------+-------------+ 
| xxx | xxx |This is very long text    | 
|   |   |      |    | 
+----------+----------+------------------------+-------------+ 
+0

我已经在我用过autosizeColumn,但没有奏效这一问题已经提到

更多信息。不过谢谢。 – rick

+0

此问题的任何更新。我使用3.10,但它没有工作。 – shubham