你代码里应该有这样的代码:
String a = (String)listget(23);
这里list长度应该是22(你可以get(0~22)的值),在去第23个值的时候超出了list 的长度。
相应的这里的rs = rwbgetSheet(j)取值时应该满足:j的值在0~22;23就list越界了。
我这几天看了这个,是这样 *** 作的。
public static void main(String args[]) throws Exception{
Workbook book = WorkbookgetWorkbook(new File("/files/testxls"));
// 获得第一个工作表对象
Sheet sheet = bookgetSheet(0);
int rows = sheetgetRows();
int cols = sheetgetColumns();
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
Cell currCell = sheetgetCell(j, i);
if (isMergeBody(sheet, currCell)) {
Systemoutprint("----" + "\t");
} else {
Systemoutprint(currCellgetContents() + "\t");
}
}
Systemoutprintln();
}
}
public static boolean isMergeBody(Sheet sheet, Cell cell) {
//获取所有的合并单元格
Range[] ranges = sheetgetMergedCells();
for (Range range : ranges) {
int startRow = rangegetTopLeft()getRow();
int startCol = rangegetTopLeft()getColumn();
int endRow = rangegetBottomRight()getRow();
int endCol = rangegetBottomRight()getColumn();
if (cellgetColumn() > endCol || cellgetColumn() < startCol
|| cellgetRow() < startRow || cellgetRow() > endRow) {
return false;
}
if (rangegetTopLeft()equals(cell)) {
return false;
}
}
return true;
}
这样的 *** 作 是可以完成基本的Excel表格的读取,代码是测试过的,可以直接run。
使用上图表格测试,
结果是
XXXX ---- ---- XXXX
XXXX XXXX
这种问题通常是数据表的问题,而且多是数据格式,例如商务通到处的数据,其格式为自定义格式,你用标准的方法当然无法获取了,通常要先判断数据的格式。如果不想一个一个的判断,可以先设置数据格式。(建议先将所有数据设置为常用格式。)
以上就是关于用jxl读取excel文件,调用getsheet()时,遇到number类型的单元格时抛出异常全部的内容,包括:用jxl读取excel文件,调用getsheet()时,遇到number类型的单元格时抛出异常、jxl.jar包中读取合并的单元格的方法是什么呢、用Java的jxl.jar包读取数据表格错误等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)