【问题标题】:Apache POI - Writing to Excel template without overwriting existing cell formattingApache POI - 在不覆盖现有单元格格式的情况下写入 Excel 模板
【发布时间】:2013-10-15 20:15:30
【问题描述】:

我正在使用 Apache POI 将数据写入 Excel 模板。该模板仅在第一行包含标题,但我还将特定样式应用于整个列(例如会计和百分比)。

当我将数据写入新单元格时,使用这些格式会很好。但是,如果我使用 createRowcreateCell 方法,单元格格式将被覆盖,并且我得到所有单元格的 General。如果我尝试改用 getRowgetCell,我会遇到 NullPointerExceptions 检索空白单元格。

有没有办法使用模板中保存的预先存在的单元格格式?还是我卡在自己通过 API 设置数据格式?

感谢您的帮助。

【问题讨论】:

    标签: java excel apache-poi


    【解决方案1】:

    如果您已将特定样式应用于整个列,则可以使用 Sheet's getColumnStyle method 检索该 CellStyle,并将基于 0 的列索引传递给它。它检索一个普通的CellStyle 对象,该对象可以在任何其他接受CellStyles 的地方使用,例如Cell's setCellStyle method

    为了避免NullPointerException,如果行或单元格不存在,getRowgetCell 可能分别返回null。您需要调用createRow 和/或createCell 来创建Cell,您可以随时调用setCellStyle

    【讨论】:

    • 效果很好!我只需要添加cell.setCellStyle(sheet.getColumnStyle(index))。再次感谢。
    【解决方案2】:

    cell.setCellStyle(sheet.getColumnStyle(index) 效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-12
      • 1970-01-01
      • 1970-01-01
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多