[Seasar-user:13820] Re: readXls()で例外が発生する

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 4月 17日 (木) 22:00:16 JST


小林 (koichik) です.

Date:    Thu, 17 Apr 2008 20:08:39 +0900
From:    "Kenichiro TANAKA" <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:13818] readXls()で例外が発生する

> テストクラスにて、readXlsWriteDb()でExcelファイルからデータを
> 読み込もうとしたところ、下の例外が発生してしまいました。
> 
> XlsReaderのsetupRows()で、行数をshortにキャストしているため、
> shortの範囲を超えるとPOIの方で例外になっているようです。

現在 Seasar2 にバンドルしている POI 3.0 では
HSSFRow#getCell(short) しか存在しないために
キャストする必要があります.
そのため,32768 以上のセルを扱うことはできません.

で,POI のサイトにある Javadoc を見ると
HSSFRow#getCell(int) が追加されているようですが,
現在リリースされている最新版の 3.0.2-FINAL には
含まれていないようです.
3.0.3 からということでしょうか?
changelog を見ると,3.0.2-BETA1 で対応されたような
記述があるのが??ですが.

43399 - [PATCH] - Fix for Cell References for rows > 32678(POI-DEVELOPERS)

ともあれ (JW),POI 3.0.3-FINAL がリリースされたら
キャストを外して HSSFRow#getCell(int) を
呼び出すように修正することになるかと思います.

それまでは POI の制限ということで,セルは 32767 までと
いうことでお願いします.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



Seasar-user メーリングリストの案内