java apache poi excel big auto column width

5lwkijsr  于 2023-08-01  发布在  Java
关注(0)|答案(3)|浏览(133)

我试图创建一个大的Excel 2010年与30列和100万记录与Apache POI最新。我正在创建这个链接http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BigGridDemo.java中所描述的。但我想列宽度为列标题文本大小相同。但是当我用下面的代码创建Excel后这样做时

for (int x = 0; x < sheet.getRow(0).getPhysicalNumberOfCells(); x++) {
            sheet.setColumnWidth(x, 20*256);
        }

字符串
这是一个巨大的时间,即使与5GB的堆大小,我得到了内存不足。
谢谢
撞锤

bgtovc5b

bgtovc5b1#

首先选择第一行或标题,因为只有标题可以为您提供行中的最大单元格数。

HSSFRow row = wb.getSheetAt(0).getRow(0);

字符串
然后对该行的每一列使用autoSizeColumn

for(int colNum = 0; colNum<row.getLastCellNum();colNum++)   
    wb.getSheetAt(0).autoSizeColumn(colNum);


这将设置列宽度与其标题宽度相同。

r9f1avp5

r9f1avp52#

我也建议你看看使用sxssf。它使用xml格式将其加载到Excel中。这是创建大型报表或网格的更快更好的方法。默认情况下,xssf中的自动调整大小功能花费的时间太长。

8yparm6h

8yparm6h3#

sheet.autoSizeColumn(columnNumber)工作。这会将列的大小调整为最大单元格长度。

相关问题