我找到的文档无法解决此问题。我认为调用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);
     }
 }


_cellorg.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell类型,我无法在线找到源代码。但是,由于对_cell.setS(idx)的调用仅传递了一个索引,因此该API看起来不够丰富,无法支持样式的合并。我强烈怀疑您的第二种样式具有您所看到的所有属性。

关于java - 将setCellStyle多次应用于org.apache.poi.ss.usermodel.Cell有什么作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8583913/

10-09 07:22