jxls-reader: пример из ссылки не работает

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

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

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

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


person roxolid    schedule 25.02.2011    source источник
comment
работает без изменений? Похоже проблема с рабочим листом.   -  person dogbane    schedule 25.02.2011
comment
Что находится в ячейке A4, какого она типа и т. д.?   -  person Michael    schedule 25.02.2011
comment
@dogbane: Ну, мне пришлось создать этот пример, следуя тому, что есть на сайте jXLS - нет ничего лучше готового к запуску проекта. Так что я не могу сказать, как это будет выглядеть без каких-либо изменений, извините.   -  person roxolid    schedule 26.02.2011
comment
@Mikaveli: Это просто текст (Максим - имя начальника в этом примере отделов-сотрудников). Если вам интересно, вы можете скачать весь файл XLS с здесь.   -  person roxolid    schedule 26.02.2011
comment
@roxolid: я только что нашел решение. Проверьте мой ответ   -  person DaJackal    schedule 06.09.2011


Ответы (1)


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

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

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

person DaJackal    schedule 06.09.2011