SXSSFWorkbook上的AutosizeColumns

ste*_*rym 16 java nullpointerexception apache-poi

是否可以在流式SXSSFWorkbook上使用autoSizeColumns?我实现了导出功能,以将对象列表导出为ex​​cel.起初我使用了XSSFWorkbook(不是流式传输),在创建了所有单元格之后,我自动化了所有列,产生了一个很好的excel文件.

对于性能问题,我们希望将工作簿更改为流式版本,但这会在org.apache.poi.ss.util.SheetUtil.getCellWidth中生成NullPointer.

是否可以为SXSSFWorkbook调用autoSizeColumns?

我使用的是poi-ooxml 3.9,但我在3.8中遇到了同样的问题.

cre*_*ijn 14

您需要确保每个单元格都有值.

我们使用以下代码将字符串值设置为单元格:

Cell c = row.createCell(i);
c.setCellValue(text == null ? "" : text );
Run Code Online (Sandbox Code Playgroud)

  • 我也有这个错误,liam xu.在调用autoSizeColumn(columnIndex)之前,在SXSSFSheet对象上调用trackAllColumnsForAutoSizing(),它将被修复. (19认同)
  • 我使用了poi 3.14的流api,但遇到了'无法自动调整大小的列.确保在自动调整色谱柱大小之前跟踪色谱柱.当我打电话给autoSizeColumn时.你见过它吗? (3认同)
  • 注意:根据文档,在将一行或多行写入工作表之前跟踪所需的列。即首先调用 trackColumnForAutoSizing(),然后使用 createRow() 写入行,最后调用 autoSizeColumn()。希望这个评论能增加一些价值。 (2认同)

Lof*_*Lof 5

sheet.trackAllColumnsForAutoSizing();