作成済みのシートを取得
ワークブックに作成済みのシートを取得するには、Workbookインターフェースで用意されている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メソッドを使います。
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 )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。