シートの並び順を変更
ワークブックに複数のシートが含まれている場合に、シートの並び順を変更する方法を確認します。
シートの並び順を変更するにはWorkbookインターフェースで定義されていsetSheetOrderメソッドを使います。
void setSheetOrder(java.lang.String sheetname, int pos)
Sets the order of appearance for a given sheet. Parameters: sheetname - the name of the sheet to reorder pos - the position that we want to insert the sheet into (0 based)
1番目の引数に並び順を変更したいシートのシート名を指定します。そして2番目の引数に1番目の引数で指定したシートを挿入したいインデックスを指定します。
シートの位置を変更した場合、新しい並び順に従ってシートに新しいインデックスが割り当てられます。
なおこのメソッドでは引数にシート名を指定する必要があります。シートインデックスを使って指定したい場合には、Workbookインターフェースで定義されているgetSheetNameメソッドを使ってインデックスからシート名を取得して指定するようにしてください。
java.lang.String getSheetName(int sheet)
Set the sheet name Parameters: sheet - sheet number (0 based) Returns: Sheet name
引数にシートのインデックスを指定すると、対応するシート名を取得できます。
使い方としては下記のようになります。
Workbook wb = new HSSFWorkbook(); Sheet sheet0 = wb.createSheet("Sheet0"); Sheet sheet1 = wb.createSheet("Sheet1"); Sheet sheet2 = wb.createSheet("Sheet2"); wb.setSheetOrder("Sheet2", 1); wb.setSheetOrder(getSheetName(2), 0);
上記の場合、まず"Sheet2"のシートがインデックス1の位置に挿入されます。結果としてシートの並びは"Sheet0","Sheet2","Sheet1"となります。次にインデックス2のシートがインデックス0の位置に挿入されます。結果として"Sheet1","Sheet0","Sheet2"という並びになります。
サンプルプログラム
実際に試してみましょう。
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 Sample10_1{ public static void main(String[] args){ Workbook wb = new HSSFWorkbook(); Sheet sheet0 = wb.createSheet("Sheet0"); Sheet sheet1 = wb.createSheet("Sheet1"); Sheet sheet2 = wb.createSheet("Sheet2"); wb.setSheetOrder("Sheet2", 1); wb.setSheetOrder(wb.getSheetName(2), 0); FileOutputStream out = null; try{ out = new FileOutputStream("sample10_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()); } } } }
プログラムを実行するとシートの並びを二回変更します。では作成されたExcelファイルを開いてみます。
"Sheet2"のシートをまずインデックス1の位置へ挿入し、続いてインデックス2のシートをインデックス0の位置へ挿入しています。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。