Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / парсинг документа excel / 11 сообщений из 11, страница 1 из 1
16.06.2018, 15:56
    #39661566
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг документа excel
Здравствуйте, всем!
Вы уж извините за такое название ))
и так собственно вопрос, есть некий экселовский документ на котором лекарственные препараты. только проблема в том что на одном ячейча содержатся данные для нескольких ячеек ), задача заключается в том что их надо правильно разбить чтоб потом в базу заносить, уважаемые посоветуйте что нибудь... )

З.Ы. то что есть это верхняя таблица а надо получить нижнюю.
...
Рейтинг: 0 / 0
16.06.2018, 19:18
    #39661592
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг документа excel
Как говорили в моей теме используйте Apache POI.
...
Рейтинг: 0 / 0
16.06.2018, 20:10
    #39661600
vsl
vsl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг документа excel
Музаффар,

1. Для чтения данных — Apache POI, как уже написали.

2. Прежде чем что-то разбирать (регулярками, самостоятельно написанным конечным автоматом, да хоть грамматику свою описывайте) — соберите больше примеров. Иначе вас ждёт много боли в процессе загрузки реальных данных.

Например, из увиденного совершенно не ясно, как будут выглядеть данные для той же но-шпы — как одна строка «Раствор для в/в введения N5 (1x5) (ампулы), Таблетки N20 (1x20), N24 (1x24) (блистер), Таблетки N60 (1x60) (флакон с дозатором)», или как три?
И не получите ли вы внезапно во входных данных что-то вроде «Лиофилизат N5 (1x5, 5 доз)»

3. Судя по тому, что в исходных данных потеряна важнейшая характеристика (дозировка), а лек.форму в результатах путают с первичной упаковкой — вас в любом случае ждёт много боли.
...
Рейтинг: 0 / 0
16.06.2018, 20:18
    #39661601
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг документа excel
на счет ПОИ отпадает т.к. и так это ясно )
есть вот такие:
1) НИКАПРИЛ - Капсулы 5 мг, 10 мг N10 (1x10), N20 (2x10), N30 (3x10), N40 (4x10), N50 (5x10), N7 (1x7), N14 (2x7), N21(3x7), N28 (4x7), N35 (5x7), N14 (1x14), N28 (2x14), N42 (3x14), N56 (4x14), N70 (5x14) (упаковки контурные ячейковые)
2) БОРЦА БЕЛОУСТОГО КОРНЕВИЩЕ С КОРНЯМИ - Лекарственное растительное сырьё 7 кг, 12 кг, (мешки), 40 кг (тюки)
3) ВАЛЕРИАНЫ НАСТОЙКА - Настойка 25 мл (флаконы), 20 л, 60 л (бутыли)

возможно поможет регулярка но для этого походу нужен анализ данных... но это потребует больше времени хотя имхо
может есть другие очевидные варианты?
...
Рейтинг: 0 / 0
16.06.2018, 20:24
    #39661602
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг документа excel
Музаффар,

А чего отпадает? среди такого функционала это самая крутая либа. Остальные слабые
...
Рейтинг: 0 / 0
16.06.2018, 20:54
    #39661604
vsl
vsl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг документа excel
Музаффар1) НИКАПРИЛ - Капсулы 5 мг, 10 мг N10 (1x10), N20 (2x10), N30 (3x10), N40 (4x10), N50 (5x10), N7 (1x7), N14 (2x7), N21(3x7), N28 (4x7), N35 (5x7), N14 (1x14), N28 (2x14), N42 (3x14), N56 (4x14), N70 (5x14) (упаковки контурные ячейковые)
2) БОРЦА БЕЛОУСТОГО КОРНЕВИЩЕ С КОРНЯМИ - Лекарственное растительное сырьё 7 кг, 12 кг, (мешки), 40 кг (тюки)
Тут сразу два вопроса по формату —
1) фасовки никаприла относятся и к 5 мг, и к 10 мг, и их надо продублировать? или только к 10 мг (а что тогда с 5 мг?)
2) «12 кг, (мешки), 40 кг (тюки)» — если запятая после 12 кг не ваша, а так и написано в данных, то разница между такими данными и мусором стремительно сокращается.

Бывают ли в данных сведения о количестве без разделения по упаковкам? Т.е. «N10, N20 (флакон)» вместо «N10 (1x10), N20 (2x10) (флакон)»

Как выглядят строки с медицинскими изделиями (бинты, катетеры, вот это вот всё)?
...
Рейтинг: 0 / 0
16.06.2018, 23:25
    #39661620
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг документа excel
Tsyklop,

отпадает потому что и так на нем и собираюсь )))

vsl ,
1) да дублировать надо т.к. у них будут разные цены...
2) все из источника
3) да такие тоже есть: Порошок для приготовления раствора для приема внутрь со вкусом шиповника 5 г N10, N25, N50 (саше)
4) интересно но бинтов и катетеров там нет )
...
Рейтинг: 0 / 0
16.06.2018, 23:42
    #39661623
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг документа excel
Музаффар,
как ни крути придется ручками парсить. если анализ и сделать, то будет дороже и дольше.
...
Рейтинг: 0 / 0
18.06.2018, 06:50
    #39661771
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг документа excel
больше никаких идей?
...
Рейтинг: 0 / 0
18.06.2018, 10:36
    #39661851
vsl
vsl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг документа excel
Музаффарбольше никаких идей?

В общем, только на регулярках я бы это делать не рискнул. Типичный человекочитаемый формат. Как раз тот случай, когда вы решаете проблему с помощью регэкспов, и теперь у вас две проблемы.

- Разбить строку на токены;
- классифицировать их (лек.форма, масса, количество, тип упаковки) — тут как раз можно с чистой совестью применять регэкспы;
- склеить соседние при необходимости, чтобы «лекарственное растительное сырье» было одним токеном, а не тремя, и «12.5 мг» — тоже одним, а не двумя;
- обработать случаи вида «Форма масса количество (упаковка1), количество (упаковка2)», приведя к нормальным «Форма масса количество (упаковка1)» и «Форма масса количество (упаковка2)» — если после упаковки есть токен, и это не лек.форма, то используем данные из предыдущего набора;
- получить декартово произведение для масс и количеств.

Работы на час-полтора. Основная проблема будет в обработке запятых:
- с одной стороны, это разделитель — подстрока «N10,N20» (без пробела) содержит 2 разных токена;
- с другой стороны, вам может встретиться лекарственная форма, в которой запятая — часть названия, и терять её нельзя (хотя фармацевты обычно пропускают запятые, даже если они нужны — «таблетки, покрытые …» пишут без запятых);
- с третьей стороны, всегда надо быть готовым получить на вход и "12.5 мг", и "12,5 мг", и "0, 75мл".
...
Рейтинг: 0 / 0
18.06.2018, 11:47
    #39661900
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг документа excel
vsl,

ясно, спасибо!

З.Ы. наверно на время оставлю этот вопрос и пусть пока оператор сам вводит нужные себя лекарственные препараты, тут просто время жмет а разобраться с этим думаю потребует больше времени чем задумался... )))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / парсинг документа excel / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]