質問: jakarta poiを使用し、excelの行コピーはできないのでしょうか? 以下のような処理を検討しています。 フォーマット.xlsには、タイトル行の雛型(背景色などを定義済)をを作成しておきます。 そのフォーマット.xlsをpoiを利用し読み込み、 ■タイトル行 ・明細 ・明細 ・明細 ■タイトル行 ・明細 ・明細 の要領でタイトル行を何度もコピーし、新しいエクセルを出力したいと考えています。 hssfsheet#shiftrowsは完全なる移動のようですので、 何度もタイトル行を使う場合には不都合がでてしまいます。 単純な行コピーなのでできそうな感じもするのですが、 ご存じな方いらっしゃいましたら、 ご教授いただけますようお願いいたします。
回答: コピーのようなメソッドは用意されていないんですね。 ちょっと面倒ですが、行の内容を取得して、その中のセルの値およびスタイルをコピーするという方法でしたらどうでしょうか。 // テンプレートの読み込み poifsfilesystem fs = new poifsfilesystem( new fileinputstream(new file("src.xls"))); hssfworkbook book = new hssfworkbook(fs); hssfsheet sheet = book.getsheetat(0); // タイトル行(1行目)の取得 hssfrow titlerow = sheet.getrow(0); // タイトル行を別の行(ここでは2行目)へコピーします。 hssfrow row = sheet.createrow(1); // セルをコピーします。 int length = titlerow.getlastcellnum(); for (int i=0; i