Apache POI - 写入Excel模板而不覆盖现有的单元格格式

时间:2013-10-15 20:15:31

标签: java excel apache-poi

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

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

有没有办法使用模板中保存的预先存在的单元格格式?或者我是否因为API而无法自行设置数据格式?

感谢您的帮助。

2 个答案:

答案 0 :(得分:6)

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

为避免NullPointerException,如果行或单元格不存在,则getRowgetCell都可能返回null。您需要致电createRow和/或createCell创建Cell,您可以随时拨打setCellStyle

答案 1 :(得分:0)

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