用jxl读取excel文件,调用getsheet()时,遇到number类型的单元格时抛出异常

用jxl读取excel文件,调用getsheet()时,遇到number类型的单元格时抛出异常,第1张

你代码里应该有这样的代码:

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包读取数据表格错误等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9423229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存