- PR -

POI利用時のExcelファイル読込みエラー回避策

1
投稿者投稿内容
まきお
会議室デビュー日: 2004/03/27
投稿数: 11
お住まい・勤務地: Japan
投稿日時: 2006-01-17 22:51
こんばんは。
POI利用時のExcelファイル読込みにて、
Excelセルの入力規則にてコンボボックス(リスト)を使用している場合、
コンボボックスの▼ボタンが表示されていると下記のようなエラーになります。

org.apache.poi.hssf.record.RecordFormatException:
Unable to construct record instance, the following exception occured: null
…以下略

ちなみに、コンボボックスを使用しない場合はうまくいきます。
また、各サイトで回避策を探しましたが、コンボボックスを消すという回避策しか出ていません。

このような現象を回避する方法はあるのでしょうか。
masa
大ベテラン
会議室デビュー日: 2005/05/11
投稿数: 108
投稿日時: 2006-01-18 01:24
こんばんは。
引用:

まきおさんの書き込み (2006-01-17 22:51) より:
ちなみに、コンボボックスを使用しない場合はうまくいきます。
また、各サイトで回避策を探しましたが、コンボボックスを消すという回避策しか出ていません。

このような現象を回避する方法はあるのでしょうか。


参照元のサイトを見ましたが、回避方法は「コンボボックスを消す」ではなく
「コンボボックスを使用しているセルからフォーカスを外した状態で元ファ
イルを保存しておく」と書いてあります。
私が試したところフォーカスを外しておくだけで正常に読み込めましたが、こ
の回避方法では問題があるのでしょうか?

フォーカスの位置が気になるだけでしたら、読み込み後に
HSSFCell#setAsActiveCell();を呼び出すことでも対応可能です。
まきお
会議室デビュー日: 2004/03/27
投稿数: 11
お住まい・勤務地: Japan
投稿日時: 2006-01-18 10:43
レスありがとうございます。
調査したところ、読み込むExcelのセルがコンボボックス(リスト)ではなく
データ→フィルタ→オートフィルタON(項目絞り込み用) のコンボボックスでした。
これがあるとフォーカスをずらしても同様エラーになるようです。
未だ、原因不明で調査中です。
まきお
会議室デビュー日: 2004/03/27
投稿数: 11
お住まい・勤務地: Japan
投稿日時: 2006-01-18 11:57
解決しました。

どうやら、POI2.5のバグらしいです。
オートフィルタ使用のファイル読み込みでエラーになるようです。
POIを2.0 or 3.0 に代える事で回避できました。

※POIの過去バージョンはこちらです。
http://archive.apache.org/dist/jakarta/poi/dev/bin/
1

スキルアップ/キャリアアップ(JOB@IT)