- Home ›
- Apache POIでExcelを操作 ›
- シート ›
- HERE
作成済みのシートを取得
ワークブックに作成済みのシートを取得するには、Workbookインターフェースで用意されているgetSheetメソッドを使います。
getSheet Sheet getSheet(java.lang.String name)
Get sheet with the given name Parameters: name - of the sheet Returns: Sheet with the name provided or null if it does not exist
引数にはシート名を表す文字列を指定します。
またシート名ではなくシートのインデックスを指定してシートを取得するにはWorkbookインターフェースで用意されているgetSheetAtメソッドを使います。
getSheetAt Sheet getSheetAt(int index)
Get the Sheet object at the given index. Parameters: index - of the sheet number (0-based physical & logical) Returns: Sheet at the provided index
引数にはシートのインデックスを指定します。
実際の使い方は次のようになります。
InputStream in = new FileInputStream("filename.xls");
Workbook wb = WorkbookFactory.create(in);
Sheet sheet1 = wb.getSheet("Sheet0");
Sheet sheet2 = wb.getSheetAt(1);
この場合、作成済みのワークブックを開き、ワークブックに含まれている名前が「Sheet0」のシートと、インデックスが1のシートをそれぞれ取得しています。
サンプルプログラム
実際に試してみましょう。
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 Sample2_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(1);
Row row = sheet.createRow(1);
Cell cell = row.createCell(1);
cell.setCellValue(123);
FileOutputStream out = null;
try{
out = new FileOutputStream("sample2_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());
}
}
}
}
今回は事前に下記のようなワークブックを作成しておきました。
このワークブックを開き、インデックス1のシートを取得します。そして取得したシートに対して行を作成した後でセルを作成し、そのセルに値として数値を設定しました。最後に別の名前を付けてワークブックを保存します。それでは作成されたファイルをExcelで開いてみます。
インデックス1のシートを確認してみると、指定の位置のセルに値が設定されていることが確認できます。なお行やセルについては別のページで詳しく確認しますのでここでは気にしないで下さい。
( Written by Tatsuo Ikura )
JavaDrive