我试图创建一个大的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的堆大小,我得到了内存不足。
谢谢
撞锤
3条答案
按热度按时间bgtovc5b1#
首先选择第一行或标题,因为只有标题可以为您提供行中的最大单元格数。
字符串
然后对该行的每一列使用
autoSizeColumn
型
这将设置列宽度与其标题宽度相同。
r9f1avp52#
我也建议你看看使用sxssf。它使用xml格式将其加载到Excel中。这是创建大型报表或网格的更快更好的方法。默认情况下,xssf中的自动调整大小功能花费的时间太长。
8yparm6h3#
sheet.autoSizeColumn(columnNumber)
工作。这会将列的大小调整为最大单元格长度。