- Home ›
- Apache POIでExcelを操作 ›
- ワークブック ›
- HERE
シート選択用のタブに最初に表示されるシートを設定
ワークブックに複数のシートが含まれている場合に、シートの下部にシート選択用のタブが表示されます。通常はインデックスが0のシートから並んで表示されますが、非常に多くのシートが含まれている場合、タブに全てを同時に表示できない場合があります。このような場合に、タブの表示する最初のシートのインデックスを指定することができます。
タブに表示される最初のシートのインデックスを指定するにはWorkbookインターフェースで定義されているsetFirstVisibleTabメソッドを使います。
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 )
JavaDrive