あるHSSFワークブックを別のワークブックのテンプレートとして使用しています。それがどのように機能するかという理由で、これを読んでいると思われるかもしれませんが、ワークブック1からセルを取得し、そのスタイルをワークブック2からCellStyleに設定することはできません。スタイル。
ただし、ワークシートには最大4000のスタイルがあるため、無制限の数のスタイルの複製を避けようとしています。そのため、複製しようとしているスタイルが、ブックに既に存在するスタイルと等しいかどうかを確認しています。もしそうなら、私はすでに存在するスタイルを使用します。そうでない場合は、テンプレートワークブックからスタイルを複製します。
私は以下に定義されているequalsメソッドを使用していますが、これはスタイルがどのワークブックからのものであるかを気にしないようです。
しかし、このすべての終わりに私がチェックするとき:
if ( !getCellStyle().equals(cell.getCellStyle()) ) {
System.out.println("Not equal to cloned style!");
} else {
System.out.println("Equal to cloned style.");
}
...出力は、スタイルが等しくないことを示しています。
どうしてこれなの?
注:instanceofを使用して、両方のオブジェクトがタイプHSSFCellStyleであることを確認しました。