Apache/apache関連情報

Apache POIでExcelファイルにアクセスする(3ページ目)

JavaからExcelのファイルにアクセスする方法とは? それはApache POIを利用するのです。

執筆者:掌田 津耶乃

Excelファイルを書き出す


では、さっそくPOIを使ってExcelファイルにアクセスをしてみましょう。まずは、ファイルに書き出す「saveToFile」メソッドから作成をしましょう。ここでは、用意してあるJTableに書かれている値をそのままXLSファイルに保存することにしましょう。

public void saveToFile(){
  JFileChooser chooser = new JFileChooser();
  int res = chooser.showSaveDialog(this);
  if (res == JFileChooser.APPROVE_OPTION){
    File fname = chooser.getSelectedFile();
    FileOutputStream output = null;
    BufferedOutputStream boutput = null;
    POIFSFileSystem poifs = null;
    try {
      output = new FileOutputStream(fname);
      boutput = new BufferedOutputStream(output);
      HSSFWorkbook workbook = new HSSFWorkbook();
      HSSFSheet sheet1 = workbook.createSheet();
      workbook.setSheetName(0,"Sheet1");
      for(int i = 0;i < row_num;i++){
        HSSFRow row = sheet1.createRow(i);
        for(int j = 0;j < col_num;j++){
          HSSFCell cell = row.createCell((short)j);
          String val = (String)table.getModel().getValueAt(i,j);
          cell.setCellValue(new HSSFRichTextString(val));
        }
      }
      workbook.write(boutput);
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      try {
        boutput.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
}

ここでは、JFileChooserを使って保存するファイルを取得しています。JFileChooserというのは、ファイルを選択するダイアログを呼び出すためのものです。

JFileChooser chooser = new JFileChooser();
int res = chooser.showSaveDialog(this);

まず、JFileChooserインスタンスを作成し、それから「showSaveDialog」メソッドを呼び出します。引数には、表示する保存ダイアログがどのウインドウから呼び出されるかを指定します。通常は、this(JFrame)を指定すればよいでしょう。

if (res == JFileChooser.APPROVE_OPTION){
  File fname = chooser.getSelectedFile();

ファイルダイアログからファイルを選択(あるいはファイル名を入力)してOKすると、ダイアログが閉じられます。このとき、「どうやって閉じたか」を示す値が返されます。「どうやって」というのは、つまりキャンセルボタンを押して閉じたか、OKして閉じたか、ということですね。OKして閉じた場合には、JFileChooser.APPROVE_OPTIONという値が返されますので、showSaveDialogでこの値が返されたなら、処理を行うようにすればよいでしょう。

選択したファイルは、getSelectedFileで取得することができます。これで得られるのはjava.io.Fileインスタンスになります。後は、このFileインスタンスを使って、保存を行えばいいわけですね。


  • 前のページへ
  • 1
  • 2
  • 3
  • 4
  • 6
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます