シートの削除

広告

ワークブックからシートを削除する方法を確認します。

シートを削除するにはWorkbookインターフェースで定義されているremoveSheetAtメソッドを使います。

Removes sheet at the given index

Parameters:
  index - of the sheet to remove (0-based)

引数に削除するシートのインデックスを指定します。

使い方としては下記のようになります。

Workbook wb = new HSSFWorkbook();
wb.removeSheetAt(1);

上記の場合、インデックスが1のシートをワークブックから削除します。

サンプルプログラム

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

Sample7_1.java

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import java.io.*;

public class Sample7_1{
  public static void main(String[] args){
    FileInputStream in = null;
    Workbook wb = null;

    try{
      in = new FileInputStream("sample.xls");
      wb = WorkbookFactory.create(in);
    }catch(IOException e){
      System.out.println(e.toString());
    }catch(InvalidFormatException e){
      System.out.println(e.toString());
    }finally{
      try{
        in.close();
      }catch (IOException e){
        System.out.println(e.toString());
      }
    }

    wb.removeSheetAt(1);

    FileOutputStream out = null;
    try{
      out = new FileOutputStream("sample7_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());
      }
    }
  }
}

今回は事前に下記のようなワークブックを作成しておきました。

シートの削除

3つのシートが含まれて居ます。プログラムのコンパイルを行い実行するとワークブックを読み込んでインデックスが1のシートを削除し、その後で別の名前を付けてワークブックを保存します。それでは作成されたファイルをExcelで開いてみます。

シートの削除

元のワークブックに含まれたいたインデックスが1のシートが削除され、シートが二つになっていることが確認できます。

( Written by Tatsuo Ikura )

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