シートを選択
ワークブックに複数のシートが追加されている時に、シートを選択状態にする方法を確認します。
シートを選択するにはSheetインターフェースで用意されているsetSelectedメソッドを使います。
void setSelected(boolean value)
Sets a flag indicating whether this sheet is selected. Note: multiple sheets can be selected, but only one sheet can be active at one time. Parameters: value - true if this sheet is selected
引数には選択状態とするかどうかを表すboolean型の値を設定します。trueであれば選択状態となり、falseであれば非選択状態となります。
なお選択状態とアクティブ状態は別です。現在シートが表示されていて操作の対象となっているシートがアクティブなシートです。もしシートを選択してもアクティブにはなりません。また一度に複数のシートを選択状態とすることができます。
アクティブなシートを設定する方法については「アクティブなシートを設定」を参照して下さい。
実際には次のように記述します。
InputStream in = new FileInputStream("filename.xls"); Workbook wb = WorkbookFactory.create(in); Sheet sheet0 = wb.getSheetAt(0); Sheet sheet1 = wb.getSheetAt(1); Sheet sheet2 = wb.getSheetAt(2); sheet1.setSelected(true);
この場合、インデックスが1のシートが選択状態となります。
サンプルプログラム
実際に試してみましょう。
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import java.io.*; public class Sample13_1{ public static void main(String[] args){ Workbook wb = new HSSFWorkbook(); Sheet sheet1 = wb.createSheet(); Sheet sheet2 = wb.createSheet(); Sheet sheet3 = wb.createSheet(); Sheet sheet4 = wb.createSheet(); sheet3.setSelected(true); sheet4.setSelected(true); FileOutputStream out = null; try{ out = new FileOutputStream("sample13_1.xls"); wb.write(out); }catch(IOException e){ System.out.println(e.toString()); }finally{ try { out.close(); }catch(IOException e){ System.out.println(e.toString()); } } } }
ワークブックに4つのシートを追加し、2番目と3番目のシートを選択状態にしました。では作成されたExcelファイルを開いてみます。
4つのシートの中で、2番目と4番目が選択状態となっていることが確認できます。なおアクティブなシートは0番目のシートです。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。