[code]
import java.io.FileInputStream;
import java.io.InputStream;import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;public class II { public static void main(String[] args) throws ArrayIndexOutOfBoundsException { String path = "test.xls"; try { InputStream is = new FileInputStream(path); Workbook wb = Workbook.getWorkbook(is); Sheet st = wb.getSheet(0); for (int k = 1; k < st.getRows(); k++) {
System.out.println(st.getRows()); for (int i = 1; i <= st.getColumns(); i++) { System.out.println(st.getColumns()); Cell cell = st.getCell(k,i); String contents = cell.getContents(); System.out.println(st.getCell(k, i) + contents + "\n"); }
} } catch (Exception e) {
e.printStackTrace(); }
System.out.println("完成导出"); }
}
[/code]
报错信息:
[code]
2
3
java.lang.ArrayIndexOutOfBoundsException: 2
at jxl.read.biff.SheetImpl.getCell(SheetImpl.java:312)
at II.main(II.java:30)
jxl.read.biff.LabelSSTRecord@5afd29你好吗3
完成导出
[/code]
这是我编写的读取excel表中单元格的信息,运行后,总是报错:数组越界,实在改不明白了
请大家帮我看看,应该如何修改
import java.io.FileInputStream;
import java.io.InputStream;import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;public class II { public static void main(String[] args) throws ArrayIndexOutOfBoundsException { String path = "test.xls"; try { InputStream is = new FileInputStream(path); Workbook wb = Workbook.getWorkbook(is); Sheet st = wb.getSheet(0); for (int k = 1; k < st.getRows(); k++) {
System.out.println(st.getRows()); for (int i = 1; i <= st.getColumns(); i++) { System.out.println(st.getColumns()); Cell cell = st.getCell(k,i); String contents = cell.getContents(); System.out.println(st.getCell(k, i) + contents + "\n"); }
} } catch (Exception e) {
e.printStackTrace(); }
System.out.println("完成导出"); }
}
[/code]
报错信息:
[code]
2
3
java.lang.ArrayIndexOutOfBoundsException: 2
at jxl.read.biff.SheetImpl.getCell(SheetImpl.java:312)
at II.main(II.java:30)
jxl.read.biff.LabelSSTRecord@5afd29你好吗3
完成导出
[/code]
这是我编写的读取excel表中单元格的信息,运行后,总是报错:数组越界,实在改不明白了
请大家帮我看看,应该如何修改
import java.io.InputStream;import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;public class RedExcel { public static void main(String[] args) { String path = "test.xls"; try { InputStream is = new FileInputStream(path); Workbook wb = Workbook.getWorkbook(is); Sheet st = wb.getSheet(0); for (int k = 0; k <= st.getRows(); k++) {
System.out.println(st.getRows());
for (int i = 0; i <=st.getColumns(); i++){ System.out.println(st.getColumns()); Cell cell = st.getCell(k,i); String contents = cell.getContents(); System.out.println(st.getCell(k, i) + contents + "\n"); }
System.out.println(k);
}
} catch (Exception e) {
e.printStackTrace(); }
System.out.println("数据导入完成!"); }
}
楼主你多了个等号
k <= st.getRows();
i <=st.getColumns(); 去掉就好了。
Cell cell = sheet1.getCell(j,i);
输出:
System.out.println(cell.getContents());注意:得到第i行第j列单元格的方法中,第一个参数表示列,第二个参数才表示行。
eg:第一行第二列:Cell cell = sheet1.getCell(1,0);而不是sheet1.getCell(0,1)
你的刚好是写反了,当然会抛数组越界异常了啊。