【问题标题】:Setting max column width for autoSizeColumn with Apache POI使用 Apache POI 为 autoSizeColumn 设置最大列宽
【发布时间】:2020-09-08 03:06:51
【问题描述】:

我们正在使用autoSizeColumn 来自动调整工作簿中每张工作表的每一列的大小。它运行良好,只是在某些情况下它会产生非常宽的列。我们并不总是可以人工检查我们的输出来检测这种情况。

有没有办法在Apache POI中实现以下逻辑?

set MAX_COL_WIDTH
enable auto-column-width
LOOP
  IF column-width > MAX_COL_WIDTH
  THEN
    disable auto-column-width for sheet
  ENDIF
  reenable auto-column-width
ENDLOOP

【问题讨论】:

  • 对于每一列,保存当前宽度,自动调整大小,获取新宽度,如果太大恢复到旧的并跳过其余的工作表?

标签: apache-poi


【解决方案1】:

执行 autoSize 后,如果列更宽,则设置最大列宽:

for (int i = 0; i < headers.length; i++) {
        sheet.autoSizeColumn(i);
    }

for (int i = 0; i < headers.length; i++) {
    if (sheet.getColumnWidth(i) > 15000) {
       sheet.setColumnWidth(i, 15000);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    相关资源
    最近更新 更多