- - PR -
POIのセルスタイルのコピーについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-07-20 10:53
Javaシステムから帳票を出力する、という設計を行っています。
テンプレートファイルをなるエクセルを読み込んで、出力するようにしようと考えています。 JavaプログラムからデータがListでわたってきます。 テンプレートには、 --------------------------------------------------------- | 品名 | 数量 | 単価 | 金額 | --------------------------------------------------------- | [--a--] | [--b--]| [--c--]| [--d--]| のように、1行分のデータ表示方法を記述します。 [--a--]や[--b--]には、getter名が設定されます。 テンプレートファイルを読み込み 実行するメソッド名を取得 getterを実行 取得したデータをセルにセット という流れで出力させようとしています。 ここで、カラムに対応したgetter名を取得する際に、 セルのスタイル(つまり、セルの結合や罫線や表示設定)を取得 マップにその情報を保持 データ件数分表示する中で、カラムごとに保持しているセルスタイルを適用 ということも合わせて行いたいのですが、 各セルのスタイルを取得して、細かくバラしてそれを全部、次の行の同じセル番号のセルにも適用するっていうのは、スマートなやり方じゃないような気がしています。 もっと他に良いやり方ありませんか? |
|
投稿日時: 2006-07-24 09:19
処理全体の流れはアップされてる内容からはもうひとつわからないのですが、
POIは私と似たようなことされてるのかな? 同じワークシートであれば、 ・セルのスタイル情報 nc.setCellStyle(c.getCellStyle()); nc=コピー先のセル、c=コピー元のセル ・マージ情報 From,Toまでばらしてやってます。 Region reg = hssfSheet.getMergedRegionAt(i); int rf = reg.getRowFrom(); int rt = reg.getRowTo(); int cf = reg.getColumnFrom(); int ct = reg.getColumnTo(); rf+=last; rt+=last; Region nr = new Region(); nr.setRowFrom(rf); nr.setRowTo(rt); nr.setColumnFrom((short)cf); nr.setColumnTo((short)ct); hssfSheet.addMergedRegion( nr); ワークシート上にセルのスタイル情報を設定するのが面倒だとおもうのですが、 同一シートなら、面倒ですが許容できるかなとおもうのですがいかがでしょう? |
1