Apache POI – 写入Excel模板而不覆盖现有的单元格格式
我正在使用Apache POI将数据写入Excel模板。 该模板仅在第一行包含标题,但是我也将特定样式应用于整个列(例如“会计”和“百分比”)。
将数据写入新单元格时使用这些格式将会很好。 但是,如果我使用createRow
和createCell
方法,单元格格式将被覆盖,并为所有单元格获得General。 如果我尝试使用getRow
和getCell
,我碰到检索空白单元格的NullPointerExceptions。
有没有办法使用保存在模板中的预先存在的单元格格式? 或者我坚持通过API自己设置数据格式?
谢谢你的帮助。
如果您已将特定样式应用于整个列,则可以使用Sheet
的getColumnStyle
方法检索该CellStyle
,并将其传递给基于0的列索引。 它检索一个正常的CellStyle
对象,可以在CellStyle
被接受的任何地方使用,比如在Cell
的setCellStyle
方法中 。
为避免NullPointerException
,如果行或单元不存在, getRow
和getCell
可能分别返回null
。 您将需要调用createRow
和/或createCell
来创buildCell
,您可以在其中始终调用setCellStyle
。
cell.setCellStyle(sheet.getColumnStyle(index)
效果很好。