0

JavaからXLSファイルを読み取る必要があります。そのために、jXLSフレームワークの評価を開始します。残念ながら、 XLSリーダーのリファレンスページでexampleを実行しようとすると、まだ次の例外が発生します。

Exception in thread "main" net.sf.jxls.reader.XLSDataReadException: Can't read cell A4 on Sheet1 spreadsheet
    at net.sf.jxls.reader.SimpleBlockReaderImpl.read(SimpleBlockReaderImpl.java:61)
    at net.sf.jxls.reader.XLSSheetReaderImpl.read(XLSSheetReaderImpl.java:25)
    at net.sf.jxls.reader.XLSReaderImpl.readSheet(XLSReaderImpl.java:45)
    at net.sf.jxls.reader.XLSReaderImpl.read(XLSReaderImpl.java:31)
    at com.oracle.sk.jxls.App.go(App.java:46)
    at com.oracle.sk.jxls.App.main(App.java:19)

オリジナルに対して行った変更は次のとおりです。

  • Department.javaとEmployee.javaを、メインクラスが存在する同じパッケージ(つまり、App.javaの隣)に移動しました
  • 空の引数なしコンストラクターを両方に追加します
  • それに応じて、departments.xmlのすべての場所でvarType(従業員と部門の完全なクラス名)を変更します

departments.xmlとdepartmentdata.xlsはどちらも、XLSリーダーのリファレンスページから直接取得されます。Department.javaEmployee.javaは、 Simple Beansページ(jXLSサイトでも)からダウンロードされます。必要に応じて、完全なMavenプロジェクトを提供できます。

どうか、誰かが手がかりを持っていますか、なぜそれが機能しないのですか?

前もって感謝します。

4

1 に答える 1

2

しばらく経ちましたが、この問題に答えるためにデバッグ検索を行いました。実際に何かを見つけました。

から、departments.xmlA4セルがにマップされていることがわかりますがdepartment.chief.name、Departmentオブジェクトを初期化すると、chiefプロパティはnullになるため、Departmentno-argsコンストラクターでは次のようにする必要があります。chief = new Employee()

これで動作するはずです。

于 2011-09-06T19:39:43.090 に答える