シートを選択

広告

ワークブックに複数のシートが追加されている時に、シートを選択状態にする方法を確認します。

シートを選択するにはSheetインターフェースで用意されているsetSelectedメソッドを使います。

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のシートが選択状態となります。

サンプルプログラム

実際に試してみましょう。

Sample13_1.java

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 )

関連記事 (一部広告含む)