将setCellStyle多次应用于org.apache.poi.ss.usermodel.Cell有什么作用?

我find的文档没有解决这个问题。 我会认为调用cell.setCellStyle(a)和cell.setCellStyle(b)会完全覆盖样式a,而应用样式b。 但是,它似乎是应用两者,因为样式不冲突。 这是预期的行为还是魔法?

那么,这里是setCellStyle()的源代码:

  public void setCellStyle(CellStyle style) { if(style == null) { if(_cell.isSetS()) _cell.unsetS(); } else { XSSFCellStyle xStyle = (XSSFCellStyle)style; xStyle.verifyBelongsToStylesSource(_stylesSource); long idx = _stylesSource.putStyle(xStyle); _cell.setS(idx); } } 

_cell的types为org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell ,我无法在线find源代码。 但是,由于对_cell.setS(idx)的调用仅传入索引,因此API看起来不够丰富,无法支持样式合并。 我强烈怀疑你的第二种风格具有你所看到的所有属性。