0

我需要从 Java 中读取 XLS 文件。为此,我开始评估jXLS框架。不幸的是,我在尝试在他们的XLS 阅读器参考页面上运行示例时仍然遇到以下异常:

Exception in thread "main" net.sf.jxls.reader.XLSDataReadException: Can't read cell A4 on Sheet1 spreadsheet
    at net.sf.jxls.reader.SimpleBlockReaderImpl.read(SimpleBlockReaderImpl.java:61)
    at net.sf.jxls.reader.XLSSheetReaderImpl.read(XLSSheetReaderImpl.java:25)
    at net.sf.jxls.reader.XLSReaderImpl.readSheet(XLSReaderImpl.java:45)
    at net.sf.jxls.reader.XLSReaderImpl.read(XLSReaderImpl.java:31)
    at com.oracle.sk.jxls.App.go(App.java:46)
    at com.oracle.sk.jxls.App.main(App.java:19)

我对原始版本所做的更改是:

  • 将 Department.java 和 Employee.java 移动到主类所在的同一个包中(换句话说,在 App.java 旁边)
  • 向两者添加空的无参数构造函数
  • 相应地更改部门.xml 中各处的 varType(员工和部门的完整类名)

department.xml 和 departmentdata.xls 都直接取自XLS 阅读器参考页Department.javaEmployee.java是从Simple beans页面下载的(也在 jXLS 站点上)。如有必要,我可以提供我完整的 Maven 项目。

拜托,有没有人有线索,为什么它不起作用?

先感谢您。

4

1 回答 1

2

我知道已经有一段时间了,但是我做了一些调试搜索来回答这个问题,实际上我发现了一些东西。

departments.xml您看到 A4 单元格映射到department.chief.name,但是当它初始化您的 Department 对象时,主要属性为 null,因此在 Department 无参数构造函数中,您应该执行类似的操作chief = new Employee()

现在它应该可以工作了。

于 2011-09-06T19:39:43.090 回答