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

Kenichiro TANAKA [E-MAIL ADDRESS DELETED]
2008年 4月 17日 (木) 20:08:39 JST


田中と申します。
お世話になります。

テストクラスにて、readXlsWriteDb()でExcelファイルからデータを
読み込もうとしたところ、下の例外が発生してしまいました。

XlsReaderのsetupRows()で、行数をshortにキャストしているため、
shortの範囲を超えるとPOIの方で例外になっているようです。
------
    protected void setupRows(DataTable table, HSSFSheet sheet) {
        for (int i = 1;; ++i) {
            HSSFRow row = sheet.getRow((short)i);
            if (row == null) {
                break;
            }
            setupRow(table, row);
        }
    }
------

バージョン:2.4.24
例外内容:
java.lang.IndexOutOfBoundsException: Row number must be between 0 and
65535, was <-32768>
	at org.apache.poi.hssf.usermodel.HSSFRow.setRowNum(HSSFRow.java:208)
	at org.apache.poi.hssf.usermodel.HSSFSheet.getRow(HSSFSheet.java:319)
	at org.seasar.extension.dataset.impl.XlsReader.setupRows(XlsReader.java:272)
	at org.seasar.extension.dataset.impl.XlsReader.createTable(XlsReader.java:218)
	at org.seasar.extension.dataset.impl.XlsReader.<init>(XlsReader.java:196)
	at org.seasar.extension.dataset.impl.XlsReader.<init>(XlsReader.java:91)
	at org.seasar.extension.unit.S2TestCase.readXls(S2TestCase.java:219)
	at org.seasar.extension.unit.S2TestCase.readXls(S2TestCase.java:206)
	at example.HogeTest.testHoge(HogeTest.java:28)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

よろしくお願いいたします。

#既出でしたらごめんなさい。
-- 
Kenichiro TANAKA
[E-MAIL ADDRESS DELETED]


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