2

以下のコードを試しましたが、うまくいきません。Excelドキュメントを作成して、開いたり閉じたりすることができません。

package tests;

import java.io.*;

import org.apache.poi.ss.usermodel.Workbook;  
import org.apache.poi.xssf.util.*;  
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Xls_Reader  {


Workbook wb = new XSSFWorkbook();  
FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");

}

次のエラーが発生します:

Default constructor can not handle exception type FileNotFoundException 
    thrown by implicit super constructor . Must define an explicit constructor.

誰かがPOIAPIでExcelファイルを作成する概念を理解するのを手伝ってもらえますか?

4

3 に答える 3

3

これはコンパイルされません:

import java.io.*;

public class Xls_Reader  {

    FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
}

しかし、これでエラーが修正されます。

import java.io.*;

public class Xls_Reader  {

    FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");

    public Xls_Reader() throws IOException {
    }
}

インスタンスの構築中にストリームがインスタンス化されます。それが失敗した場合、建設も失敗します。


ところで-これは「Java101」であり、ApachePOIとは何の関係もありません。

于 2012-11-12T03:01:11.987 に答える
3

FileNotFoundExceptionを明示的にスローするコンストラクターをサブクラスで宣言します。

public Xls_Reader() throws FileNotFoundException {...} 

または、FileNotFoundException例外をスローする代わりに、基本クラスのコードをtry-catchブロックで囲みます。

    FileInputStream fileOut = null;
    try { 
          FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
          // do something
        } 
   catch (FileNotFoundException ex) { ... } 
   finally {
        try 
        {
        // do something
            fileOut();
        } catch (IOException ex) {... }
    }  
于 2012-11-12T03:03:59.977 に答える
1

これらの例は、理解を深めるのに役立ちます

  1. Apache POIを使用してExcel(.xlsx)ドキュメントを作成する
  2. ApachePOIを使用したExcelファイルの読み取りと書き込み
于 2012-11-12T03:05:05.910 に答える