シートから行を削除

広告

シートから行を削除する方法を確認します。

行を削除するにはSheetインターフェースで用意されているremoveRowメソッドを使います。

Remove a row from this sheet. All cells contained in the row are removed as well

Parameters:
  row - representing a row to remove.

引数には行を表すRowインターフェースを実装したクラスのオブジェクトを指定します。

実際の使い方は次のようになります。

InputStream in = new FileInputStream("filename.xls");
Workbook wb = WorkbookFactory.create(in);
Sheet sheet = wb.getSheetAt(0);

Row row = sheet.getRow(1);
sheet.removeRow(row);

この場合はシートから1行目の行を削除しています。

サンプルプログラム

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

Sample4_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.Row;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import java.io.*;

public class Sample4_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());
      }
    }

    Sheet sheet = wb.getSheetAt(0);
    Row row = sheet.getRow(2);
    sheet.removeRow(row);

    FileOutputStream out = null;
    try{
      out = new FileOutputStream("sample4_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ファイルを用意しています。

シートから行を削除

プログラムを実行すると、シートに含まれる3つの行の中から2行目の行を削除しています。それでは作成されたファイルをExcelで開いてみます。

シートから行を削除

行が削除されていることを確認できます。

( Written by Tatsuo Ikura )

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