2011-12-21 13 views
1

私が見つけたドキュメントはこの問題に対処していません。私は、cell.setCellStyle(a)とcell.setCellStyle(b)を呼び出すと、スタイルaを完全に上書きし、代わりにスタイルbを適用すると思います。しかし、スタイルが矛盾しないため、両方に適用されているようです。これは予想される行動か魔法ですか?setCellStyleをorg.apache.poi.ss.usermodel.Cellに複数回適用すると、どのような影響がありますか?

答えて

1

さて、ここで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はタイプorg.openxmlformats.schemas.spreadsheetml.x2006.main.CTCellであり、私はオンラインのソースコードを見つけることができませんでした。ただし、_cell.setS(idx)への呼び出しはインデックスのみを渡すため、APIはスタイルのマージをサポートするのに十分な富を持っていません。私はあなたの第2のスタイルがあなたが見ているすべての属性を持っていることを強く疑う。

関連する問題