シート選択用のタブに最初に表示されるシートを設定
ワークブックに複数のシートが含まれている場合に、シートの下部にシート選択用のタブが表示されます。通常はインデックスが0のシートから並んで表示されますが、非常に多くのシートが含まれている場合、タブに全てを同時に表示できない場合があります。このような場合に、タブの表示する最初のシートのインデックスを指定することができます。
タブに表示される最初のシートのインデックスを指定するにはWorkbookインターフェースで定義されているsetFirstVisibleTabメソッドを使います。
void setFirstVisibleTab(int sheetIndex)
Sets the first tab that is displayed in the list of tabs in excel. Parameters: sheetIndex - the first tab that to display in the list of tabs (0-based)
引数に指定するシートのインデックスを指定します。
使い方としては下記のようになります。
Workbook wb = new HSSFWorkbook(); Sheet sheet0 = wb.createSheet(); Sheet sheet1 = wb.createSheet(); Sheet sheet2 = wb.createSheet(); wb.setFirstVisibleTab(1);
上記の場合、インデックスが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 Sample9_1{ public static void main(String[] args){ Workbook wb = new HSSFWorkbook(); for (int i = 0 ; i < 10 ; i++){ wb.createSheet(); } wb.setFirstVisibleTab(5); FileOutputStream out = null; try{ out = new FileOutputStream("sample9_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()); } } } }
プログラムを実行すると10のシートを作成し、その中のインデックスが5のシートがタブの先頭に表示されるように設定します。では作成されたExcelファイルを開いてみます。
タブの先頭にはインデックス5のシートが表示されていることが確認できます。なおタブの横にある矢印を使ってタブに表示されるシートは前後に動かすことができます。
タブの先頭に表示されるインデックスを設定しても、アクティブなシートはデフォルトのインデックスが0のシートのままです。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。