ApachePOIで、Excelシートをアクティブにする方法です。
アクティブとは、シートをカレント(操作対象)状態にするということです。
Excelは複数シートを選択状態にすることができるので、
シートを選択して更にカレント(操作対象)とします。
Excelは複数シートを選択状態にすることができるので、
シートを選択して更にカレント(操作対象)とします。
Excelシートをアクティブにするには以下のメソッドを使用します。
Workbook#setSelectedTab() :シートを選択状態にする
Workbook#setActiveSheet() :シートをアクティブ(カレント)にする
サンプルソース
例)読み込んだExcelの3シート目をアクティブにする
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 42 43 44 45 |
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("C:¥¥temp¥¥sample.xlsx"); wb = WorkbookFactory.create(is); //3シート目をアクティブにする wb.setActiveSheet(2); //シートを選択状態にする wb.setSelectedTab(2); //シートをカレントにする //シート名で指定したい場合はこちら //wb.setSelectedTab(wb.getSheetIndex("Sheet2")); //wb.setActiveSheet(wb.getSheetIndex("Sheet2")); //Excelファイル出力 out = new FileOutputStream("C:¥¥temp¥¥sample.xlsx"); wb.write(out); } catch (Exception ex) { ex.printStackTrace(); } finally { try { wb.close(); out.close(); } catch (Exception ex2) { ex2.printStackTrace(); } } } } |
シートを選択状態にした上でカレントにするという感じです。
備考
- .xls形式、.xlsx形式どちらも対応します。
- 存在しないインデックス番号を指定した場合は例外が発生します。
- シートのインデックス番号は0から指定しますので、1シート目は0、2シート目は1…となります。