当前位置: 首页 > 面试题库 >

apache poi excel大自动列宽

经炜
2023-03-14
问题内容

我试图用Apache poi创建一个包含30列和100万条记录的大型Excel
2010。我正在按照此链接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,我也无法使用内存。

谢谢

内存


问题答案:

First选择第一行或标题,因为只有Header才能为您提供一行中的最大单元数。

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

然后autoSizeColumn在该行的每一列上使用

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

这会将列宽设置为其标题宽度。



 类似资料:
  • 问题内容: 我试图用Apache poi创建一个包含30列和100万条记录的大型Excel 2010。我正在按照此链接http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BigGridDemo.java中的描述进行创建 。但我希望列宽与列标题文本大小相同。

  • 我对Spring AutoPopulatingList有问题。我的用例如下:管理可以访问应用程序的用户列表。 在GUI方面,我使用自动完成字段来搜索用户并将其添加到右侧的表中。用户也可以从表中删除。当GUI用户提交时,GUI会动态构建一个表单,其中包含用户字段:选择用户[1],…,选择用户[N]。 我的问题是,我的“支持”bean中的AutoPopulatingList似乎只增长到256项,然后停

  • 问题内容: 我对JRXlsExporter有问题。自动调整属性无法正常工作。这是我的jrxml: Java代码: 并输出结果: resultFile。 例如,第一列必须是“客户编号”,而不是“客户” 问题答案: 以下属性在报告级别上不起作用: 您必须将它们放在“报表元素”上(即): 另外,我建议您尝试使用更有用的net.sf.jasperreports.export.xls.column.widt

  • 我尝试过自动调整我使用Jython Apache POI制作的Excel列的大小。我找到了这个线程:Apache POI Excel-如何配置要扩展的列?,但我仍然搞不清楚。 我尝试添加“sheet1.autoSizeColumn(1)”,但它不会改变任何东西。在每个可用列上调用它不是更好吗,因为为什么不希望每个列的格式都很好呢? 也许这在Jython中是不可能的? 恭喜你,克里斯托夫。

  • 问题内容: Qt解决方案是对 resizeColumnsToContent() 的单个调用,在.NET中,可以使用 TextRenderer.MeasureText() ,而JTable可以使用 AUTO_RESIZE_ALL_COLUMNS 。 在SWT中,是否有一种方法可以在填充列之后以编程方式调整列的大小? 调用将返回相同的值,因此将忽略列中剩余的字符。 TableColumn具有,但是如何

  • 问题内容: 我有一个JavaFX 2表,该表显示人员的联系方式,让我们想象一下三列:名字,姓氏和电子邮件地址。当我的应用程序启动时,它将在表中填充有关系统中已有人员的几行数据。 问题是列宽都相同。大多数情况下,名字和姓氏都会显示完整,但电子邮件地址会被裁剪。用户可以双击标题中的分隔符来调整列的大小,但这很快就会变得乏味。 表格预先填充后,我想以编程方式调整所有列的大小以显示它们包含的数据,但我不知