永发信息网

用java读取Excel单元格数据出错

答案:3  悬赏:40  手机版
解决时间 2021-07-21 00:00
  • 提问者网友:niaiwoma
  • 2021-07-20 18:14

程序如下:

//读取Excel的类

import java.io.*;
import java.util.*;
import jxl.*;
import jxl.read.biff.BiffException;


public class ReadExcel{

public static void main(String[] args) {
try {
Workbook book = Workbook.getWorkbook(new File("1-1.xls"));
Sheet sheet = book.getSheet(0);
System.out.println("请输入要读取的单元格");
Scanner in = new Scanner(System.in);
int x = in.nextInt();
in = new Scanner(System.in);
int y = in.nextInt();

Cell cell1 = sheet.getCell(x,y);
String result = cell1.getContents();

System.out.println("Cell(x, y)" + " value : " + cell1.getContents() + "; type : " +
cell1.getType() );

book.close();
} catch (BiffException e) {
// TODO 自动生成 catch 块
System.out.println(e);
} catch (IOException e) {
// TODO 自动生成 catch 块
System.out.println(e);;
}

}

}

出现问题:

当读取一个单元格时,如果没自定义类型,则读取正确!!

当设定自定义类型 [红色][<60]0.0;[黑色]0.0 后,读取全部出错了。。。

哪位高手知道怎么回事啊?????

最佳答案
  • 五星知识达人网友:一袍清酒付
  • 2021-07-20 18:36

个人感觉应该是jxl的getContents的bug,不支持条件单元格格式。。。。


改成getValue看看能不能取到数据?


if (cell1.getType() == CellType.NUMBER)
{
NumberCell nc = (NumberCell) cell1;
System.out.println("Cell(x, y)" + " value : " + nc.getValue() + "; type : " + cell1.getType() );
}else


System.out.println("Cell(x, y)" + " value : " + cell1.getContents() + "; type : " + cell1.getType() );

全部回答
  • 1楼网友:走死在岁月里
  • 2021-07-20 20:13
获取这个单元格的时候。类型一定要对!
  • 2楼网友:愁杀梦里人
  • 2021-07-20 19:28
加个断点跟踪测试,看具体是哪一行出的错。读取到什么地方的时候出的错。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯