[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 メーリングリストの案内