- ベストアンサー
POIのHSSFCellStyleクラスを継承したい
- POI(http://jakarta.jp/poi/index.html)なる物を使ってExcelを作成するプログラムを作成しています。機能を1つにまとめたクラスを用意し、そのクラスをプログラムで使用しようと考えていますが、HSSFCellStyleクラスのコンストラクタがprotectedなため、継承して使用することができません。
- HSSFCellStyleクラスで使用する機能をまとめたクラスを用意したいのですが、方法をご存知の方、よろしくお願いします。
- HSSFCellStyleクラスは、Excelのセルの属性を設定するためのクラスです。セルの背景色やパターンなどを設定することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
HSSFCellStyleを継承することはできます。 HSSFCellStyleのコンストラクタは、 protected HSSFCellStyle(short index, ExtendedFormatRecord rec) として定義されているので、継承したクラスのコンストラクタで、このコンストラクタを呼ぶことで継承することはできます。 特定のHSSFCellStyleを使用したいだけであれば、 以下のようにUtilクラスを用意するだけで良いかもしれません。 class Util { static HSSFCellStyle getBaseHSSFCellStyle(HSSFCellStyle style) { style.setFillBackgroundColor(HSSFColor.AQUA.index); style.setFillPattern(HSSFCellStyle.BIG_SPOTS); return style; } }
その他の回答 (1)
- javakari
- ベストアンサー率66% (4/6)
#1です。 列単位にスタイルを設定する方法を少し 調べてみたのですが、わかりませんでした。 お役に立てず申し訳ないです
お礼
色々、ありがとうございます。 自分でも色々調べ、 HSSFCellStyle style1 = wb.createCellStyle(); HSSFCell cell = row.createCell((short) 1); HSSFCellStyle style2 = cell.getCellStyle(); style2.setXXX( style1.getXXX ); style2.setYYY( style1.getYYY ); cell.setCellStyle( style2 ); こんなことが出来るのに気づきました(汗 おかげさまで、Excel操作クラスとして1つにまとめる事ができました。 ありがとうございます
お礼
回答ありがとうございます 特定のスタイルを指定したいのではなく 「HSSFColor」など、色々importしなければならないため、1まとめにしたい というのが目的です 追加質問になってしまうのですが 列単位にスタイルを設定する方法(金額入力列とか)をご存知でしたら、ご教授願います