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

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

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

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

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

3. Судя по тому, что в исходных данных потеряна важнейшая характеристика (дозировка), а лек.форму в результатах путают с первичной упаковкой — вас в любом случае ждёт много боли.
...
Рейтинг: 0 / 0
парсинг документа excel
    #39661601
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на счет ПОИ отпадает т.к. и так это ясно )
есть вот такие:
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
парсинг документа excel
    #39661602
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Музаффар,

А чего отпадает? среди такого функционала это самая крутая либа. Остальные слабые
...
Рейтинг: 0 / 0
парсинг документа excel
    #39661604
vsl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vsl
Гость
Музаффар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
парсинг документа excel
    #39661620
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

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

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

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

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

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

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

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


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