web-dev-qa-db-ja.com

Apache POIとjavaを使用して1つのワークシートを別のワークシートにコピーする方法

1枚のExcelファイル(抽象モデル)が1つあります。次に、シートを別の既存のブックにコピーします。これどうやってするの?

15
Saravanan

少しグーグルすると役立ちます:

http://www.coderanch.com/t/420958/open-source/Copying-sheet-Excel-file-another

..そして、ここであなたの電子メールを削除することを検討してください。フォーラムは、オフライン/プライベートディスカッションではなく、同様の問題に遭遇したすべての人を助けるためにディスカッションを共有することを目的としています。

5
limc

通常のスタイルとデータを処理するために、各セルを反復処理できます。
ただし、数式が有効なセル、編集不可能なセル、結合されたセルがある場合は、これがより適切なソリューションです。
シートをコピーするようなことを試しましたが、うまくいきませんでした。
それに加えて、編集不可能なセルと数式が有効なセルもあるシートをコピーする必要があります。

この解決策は私にとってうまくいきました:
1)ブック全体をコピーする
2)不要なシートを削除する3)上記の本に新しいシートを追加する

//input source Excel file which contains sheets to be copied
file = new FileInputStream("C:\\SamepleTemplate.xlsx");
workbookinput = new XSSFWorkbook(file);

//output new Excel file to which we need to copy the above sheets
//this would copy entire workbook from source
XSSFWorkbook workbookoutput=workbookinput;

//delete one or two unnecessary sheets, you can delete them by specifying the sheetnames
workbook.removeSheetAt(workbook.getSheetIndex(workbook.getSheet(" your sheet name ")));

//if you want to delete more sheets you can use a for to delete the sheets
for (int index=0;index<=5;index++)
{
   workbook.removeSheetAt(index);
}

//To write your changes to new workbook
FileOutputStream out = new FileOutputStream("C:\\FinalOutput.xlsx");
workbookoutput.write(out);
out.close();
0
Ajay