jxls-reader: пример из ссылки не работает - PullRequest
0 голосов
/ 25 февраля 2011

Мне нужно прочитать файлы XLS из Java.Для этого я начинаю оценивать jXLS framework.К сожалению, я все еще получаю следующее исключение при попытке запустить пример на их ссылке на читатель 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)
  • добавьте пустой конструктор без аргументов в оба
  • соответственно измените varType (полные имена классов для Employee и Department) повсюду в департаментов.xml

Оба отдела.xml и Departmentdata.xls берутся непосредственно со справочной страницы читателя XLS , Department.java и Employee.java загружаются со страницы Simple bean (также на сайте jXLS).При необходимости я могу предоставить свой полный проект Maven.

Пожалуйста, у кого-нибудь есть подсказка, почему он не работает?

Заранее спасибо.

1 Ответ

2 голосов
/ 06 сентября 2011

Я знаю, что это было давно, но я выполнил некоторые отладочные поиски, чтобы ответить на эту проблему, на самом деле я кое-что узнал.

Из departments.xml вы видите, что ячейка A4 отображается на department.chief.name, но когда она инициализирует ваш объект Department, главным свойством является null, поэтому в конструкторе Department-no-args вы должны сделать что-то вроде chief = new Employee()

Теперь это должно работать.

...