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

Kenichiro TANAKA [E-MAIL ADDRESS DELETED]
2008年 4月 18日 (金) 11:00:12 JST


小林さま、ご回答どうもありがとうございます。

私が申し上げたかったのは、HSSFRow#getCell(short) ではなくて、
HSSFSheet#getRow(int) の方で、XlsReaderからこれを呼び出す際に
引数をshortにキャストしている部分です。

こちらは、現在バンドルしているPOIでも65535まで使えるのではないでしょうか。
現にキャストをはずせば問題ないようです。

お手数をおかけいたしますが、よろしくお願いいたします。

08/04/17 に Koichi Kobayashi<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 小林 (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 mailing list
>  [E-MAIL ADDRESS DELETED]
>  https://ml.seasar.org/mailman/listinfo/seasar-user
>


-- 
Kenichiro TANAKA
[E-MAIL ADDRESS DELETED]


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