0 / 0 / 0
Регистрация: 14.03.2018
Сообщений: 15
|
||||||
1 | ||||||
Парсинг Excel22.04.2018, 20:01. Показов 5838. Ответов 15
Метки нет (Все метки)
Добрый день, прошу помощи с проблемой, которая возникла в результате парсинга эксель документа. Он содержит в себе 5 столбцов и строки (4 столбца со значением String и один, третий, со значением Date). Создала цикл, который проходит весь документ, но на второй строке(конкретно на значении в формате Date) цикл почему-то прерывается и выдается ошибка Cannot get a numeric value from a text cell. Заранее спасибо!
0
|
22.04.2018, 20:01 | |
Ответы с готовыми решениями:
15
Парсинг excel Быстрый парсинг Excel Парсинг Excel файла Парсинг Excel файла |
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
22.04.2018, 22:24 | 2 |
1. Чо за библиотека?
2. СТэктрэйс приложи
0
|
0 / 0 / 0
Регистрация: 14.03.2018
Сообщений: 15
|
|
22.04.2018, 23:33 [ТС] | 3 |
Кликните здесь для просмотра всего текста
Exception in thread "JavaFX Application Thread" java.lang.IllegalStateException: Cannot get a numeric value from a text cell
at org.apache.poi.hssf.usermodel.HSSFCell.typeMismatch(HSSFCell.java:643) at org.apache.poi.hssf.usermodel.HSSFCell.getNumericCellValue(HSSFCell.java:668) at org.apache.poi.hssf.usermodel.HSSFCell.getDateCellValue(HSSFCell.java:689) at narozeniny.ExcelTable.readFromEx(ExcelTable.java:49) at narozeniny.MainController.signUpPerson(MainController.java:92) at narozeniny.MainController.lambda$0(MainController.java:65) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventH andler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManag er.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManag er.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEve ntDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.jav a:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl .java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.jav a:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl .java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.jav a:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl .java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Node.fireEvent(Node.java:8413) at javafx.scene.control.Button.fire(Button.java:185) at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavio r.java:182) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.jav a:96) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.jav a:89) at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubbli ngEvent(CompositeEventHandler.java:218) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventH andler.java:80) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManag er.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManag er.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEve ntDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.jav a:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl .java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.jav a:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl .java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.jav a:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl .java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Scene$MouseHandler.process(Scene.java:3757) at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485) at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762) at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Glass ViewEventHandler.java:394) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Glass ViewEventHandler.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(Glas sViewEventHandler.java:432) at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.jav a:389) at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventH andler.java:431) at com.sun.glass.ui.View.handleMouseEvent(View.java:555) at com.sun.glass.ui.View.notifyMouse(View.java:937) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177) at java.lang.Thread.run(Unknown Source) Библиотека jxl Добавлено через 16 минут Если просто выводить в консоль индексы клеток по срокам, то в определенный момент обычная последовательность 01234 меняется на 0125
0
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
22.04.2018, 23:59 | 4 |
В доках например рекомендуют кастить Cell в более специфичный тип. Если я конечно смотрел те доки.
0
|
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
|
|
23.04.2018, 09:24 | 5 |
0
|
3 / 3 / 2
Регистрация: 30.12.2015
Сообщений: 10
|
||||||
23.04.2018, 10:34 | 6 | |||||
Biotech, Как вы знаете Excel-е есть разные типы данных в ячейках. У вас ячейка имеет формат Data. Поэтому вам вначале нужно достать формат ячейки и только потом проводить с ней операции. На сайте Apache POI есть уже готовый пример как это сделать. тыц!
Например, я делал эту проверку примерно так:
0
|
0 / 0 / 0
Регистрация: 14.03.2018
Сообщений: 15
|
|
23.04.2018, 17:41 [ТС] | 7 |
Не знаю, от чего это зависит, но сбой происходит еще до этого.
Когда я пишу CellType type=cell.getCellType() eclipse пишет celltype cant be resolved to a type. Можно ли как-нибудь по-другому проверить тип данных?
0
|
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
|
|
23.04.2018, 17:48 | 8 |
Biotech, у тебя не дает значение из числовой ячейки, так? ты пробовал в эти ячейки, допустим целые числа вставить?
0
|
0 / 0 / 0
Регистрация: 14.03.2018
Сообщений: 15
|
|
23.04.2018, 19:26 [ТС] | 9 |
Да, с числовым форматом тоже не получилось
0
|
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
|
|
23.04.2018, 19:37 | 10 |
с целыми числами?
Добавлено через 4 минуты сделай небольшой Exсel файл или даже несколько, с разными типами чисел и исследуй, пока не поймешь где трабла.
0
|
0 / 0 / 0
Регистрация: 14.03.2018
Сообщений: 15
|
||||||
23.04.2018, 19:37 [ТС] | 11 | |||||
Удалось сделать выборку по типу клеток, но в базе данных, куда, собственно, и идут все значения, в строчке с днем и с месяцем отображаются 0, то есть все равно не происходит чтение числовых данных.
0
|
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
|
|
23.04.2018, 19:43 | 12 |
формат дат, возможно не приведен к одному виду!
0
|
0 / 0 / 0
Регистрация: 14.03.2018
Сообщений: 15
|
|
23.04.2018, 22:15 [ТС] | 13 |
Aviz__, нет, все данные одного вида. Уже несколько раз проверяла
0
|
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
|
|
24.04.2018, 05:21 | 14 |
14.11.2017 на такой дате не спотыкается? в jxl может быть формат дат американский, по дефолту.
0
|
0 / 0 / 0
Регистрация: 14.03.2018
Сообщений: 15
|
|
25.04.2018, 13:52 [ТС] | 15 |
Всем большое спасибо, я поняла, как это делается:
Date date = new SimpleDateFormat("dd.MM.yyyy").parse(cell.getStringCellValue());
0
|
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
|
|
25.04.2018, 14:08 | 16 |
Biotech, какая Вы, молодец
0
|
25.04.2018, 14:08 | |
25.04.2018, 14:08 | |
Помогаю со студенческими работами здесь
16
Парсинг Excel и сохранение в *.xml Парсинг Excel в БД посредством php VBA парсинг и импорт в столбец excel Парсинг XML файл в Excel на сервере Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |