ApachePOIでExcelシートを複製する方法です。
サンプルソース
例)読み込んだExcelの1シート目を複製して新規Excelとして保存する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class PoiSample { public static void main(String[] args) { InputStream is = null; Workbook wb = null; FileOutputStream out = null; try { //Excelファイル読込 is = new FileInputStream("D:¥¥sample.xlsx"); wb = WorkbookFactory.create(is); //シートを複製する wb.cloneSheet(0); //1シート目を複製する wb.setSheetName(1, "複製シート"); //複製したシート名を変更する //Excelファイル出力 out = new FileOutputStream("D:¥¥sample.xlsx"); wb.write(out); } catch (Exception ex) { ex.printStackTrace(); } finally { try { wb.close(); out.close(); } catch (Exception ex2) { ex2.printStackTrace(); } } } } |
備考
- シートをコピーするには、Workbook#cloneSheet()メソッドを使用します。
- コピーしたシート名は自動で振られる「Sheet1」のような名称なので、Workbook#setSheetName()メソッドで名称を変更できます。
- .xlsx形式、.xls形式どちらのExcelにも自動で対応します。