К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Чтение прайсов из Word

Гость
0 - 24.05.2018 - 13:23
Всех приветствую! Последнее время занимался закачкой номенклатуры и цен из файлов Excel в УТ11. С этим все более или менее нормально, удивился только тому как же кривовато их делают даже крупные поставщики. И вот подкатили несколько прайсов в файлах Word. Цены идут в таблицах, казалось бы читай, разбирай, записывай. Но таблицы не просто набор строчек с товарами, а с объединенными ячейками. Немного упрощая, приведу типичный случай. Всего 3 колонки:
1 - Наименование
2 - Артикул
3 - цена
Цены идут группами на 4 артикула:
Колонка 1 - Одно наименование в объединенной ячейке на 4 строки
Колонка 2 - 4 строки артикулов
Колонка 3 - одна цена на все 4 артикула
Надо прочитать как 4 товара (Наименование + Артикул**
Не знаю, как это надо делать по науке, но прайс такого типа сумел победить, определив общее количество строк с данными, затем количество строк в каждом столбце и через множители количествСтрокоВсего/КоличествоСтрокВСтолбце сумел правильно вытащить все данные.Понятно, что это как-то кривовато. Но следующий прайс хуже, в нем группы содержат разное количество артикулов, например 2 группы по 4, затем 2 группы по 3, потом вообще несколько простых строчек без всяких групп (объединенных ячеек). Кто читал такие таблицы, подскажите куда копнуть, какие коллекции в объектной модели таблицы Word использовать. Сейчас я тупо использую Таблица.Cell(НомерСтроки, НомерКолонки).Range.Text) и вся моя хитрость состояла в правильном определении номера строки для каждой читаемой позиции



1 - 24.05.2018 - 16:02
А попросить предоставить прайсы в формате Excel не пробовал?
Неужели настают времена программ, которые отказываются дружить с Excel? :-)
Гость
2 - 24.05.2018 - 16:13
(1)Вопрос был о том как закачать из Word. Ты меня все время выводишь на контакт с поставщиками, но мне это не надо, у меня есть клиент, а поставщик - их клиент. Я попросил Excel, но ответа не получил. Думаю что и Word можно одолеть, просто надо знать подход
3 - 24.05.2018 - 16:24
2-USSR > Разумеется, можно повозиться с прайсом и в Word'е. Но это более трудоемко, чем позаимствовать из Excel.
Гость
4 - 24.05.2018 - 16:25
(3)Это и ежу понятно. Из Excel я уже закачал более 100 листов, самой разной внешности
5 - 24.05.2018 - 19:41
Цитата:
Сообщение от USSR Посмотреть сообщение
Из Excel я уже закачал более 100 листов, самой разной внешности
а ссылок в яндексе на тему "конвертиротвание таблиц из Word в excel средствами VBA" больше 100 :)

я нисколечко не настаиваю, но
если ты наловчился работать с "Excel самой разной внешности", то почему бы и не привести из всяких-разных других форматов всякой разной внешности к тому виду, с которым тебе удобнее всего работать?
тут имхо вопрос философский - или изучать всякие-разные форматы или приводить их к любимому виду.
Гость
6 - 24.05.2018 - 21:08
(5)честно говоря, мне даже мысль такая в голову не приходила. Надо подумать, но идея при внешней привлекательности имеет свои подводные камни. Если сложно прочитать оригинал, то вряд ли будет просто потом прочитать из того что родит конвертор. А если конвертор делает всё прпвильно, то почему мы с вами не можем сделать тоже самое? Ведь вся объектная модель в нашем распоряжении, надо просто ей грамотно воспользоваться
7 - 25.05.2018 - 03:00
", удивился только тому как же кривовато их делают даже крупные поставщики. "
- ну, если сделано с какойто автоматизации - то обычно более-менее. если манагер поставщика лабает кривыми ручонками - то все что угодно может быть
Гость
8 - 25.05.2018 - 09:03
Моим бухам, в свое время, предоставляли вообще в бумажном виде только, я научил их пользоваться FineReader-ом и под выходные файлы Excel сделал обработку загрузки. Поскольку структура получившегося файла была заранее не известна, приходилось анализировать содержимое каждой ячейки.
Гость
9 - 25.05.2018 - 13:30
Ну в общем, все не так страшно. Решение даже проще, чем в частном случае с 4 артикулами. Для каждой колонки задействовал 2 номера строки, один - общий для читаемой таблицы и второй - номер последней удачно прочитанной в "попытке" строки. Сначала читаем в в строке по общему номеру, если неудачно, но по счетчику колонки. Вот и весь конвертер. Есть еще более сложный случай, но там другая история
Гость
10 - 26.05.2018 - 09:27
Прочитал и 2 наиболее заковыристых файла. Всем спасибо )


К списку вопросов






Copyright ©, Все права защищены