我正在使用Apache POI将数据写入Excel模板。模板仅包含第一行的标题,但我还将特定样式应用于整个列(例如,会计和百分比)。
当我将数据写入新单元格时,使用这些格式会很好。但是如果我使用createRow
和createCell
方法,则会覆盖单元格格式,并且所有单元格都会获得General。如果我尝试使用getRow
和getCell
,我会遇到检索空白单元格的NullPointerExceptions。
有没有办法使用模板中保存的预先存在的单元格格式?或者我是否因为API而无法自行设置数据格式?
感谢您的帮助。
答案 0 :(得分:6)
如果您已将特定样式应用于整个列,则可以使用Sheet
's getColumnStyle
method检索CellStyle
,并将基于0的列索引传递给它。它会检索一个普通的CellStyle
对象,该对象可以在其他任何地方使用CellStyle
被接受,例如在Cell
's setCellStyle
method中。
为避免NullPointerException
,如果行或单元格不存在,则getRow
和getCell
都可能返回null
。您需要致电createRow
和/或createCell
创建Cell
,您可以随时拨打setCellStyle
。
答案 1 :(得分:0)
cell.setCellStyle(sheet.getColumnStyle(index)
效果很好。