Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Чтение прайсов из Word (http://forums.kuban.ru/f1040/chtenie_prajsov_iz_word-8653260.html)

USSR 24.05.2018 13:23

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

VadimB 24.05.2018 16:02

А попросить предоставить прайсы в формате Excel не пробовал?
Неужели настают времена программ, которые отказываются дружить с Excel? :-)

USSR 24.05.2018 16:13

(1)Вопрос был о том как закачать из Word. Ты меня все время выводишь на контакт с поставщиками, но мне это не надо, у меня есть клиент, а поставщик - их клиент. Я попросил Excel, но ответа не получил. Думаю что и Word можно одолеть, просто надо знать подход

VadimB 24.05.2018 16:24

2-USSR > Разумеется, можно повозиться с прайсом и в Word'е. Но это более трудоемко, чем позаимствовать из Excel.

USSR 24.05.2018 16:25

(3)Это и ежу понятно. Из Excel я уже закачал более 100 листов, самой разной внешности

Блондинка в шок 24.05.2018 19:41

[quote=USSR;45619568]Из Excel я уже закачал более 100 листов, самой разной внешности[/quote]

а ссылок в яндексе на тему "конвертиротвание таблиц из Word в excel средствами VBA" больше 100 :)

я нисколечко не настаиваю, но
если ты наловчился работать с "[em]Excel самой разной внешности[/em]", то почему бы и не привести из всяких-разных других форматов всякой разной внешности к тому виду, с которым тебе удобнее всего работать?
тут имхо вопрос философский - или изучать всякие-разные форматы или приводить их к любимому виду.

USSR 24.05.2018 21:08

(5)честно говоря, мне даже мысль такая в голову не приходила. Надо подумать, но идея при внешней привлекательности имеет свои подводные камни. Если сложно прочитать оригинал, то вряд ли будет просто потом прочитать из того что родит конвертор. А если конвертор делает всё прпвильно, то почему мы с вами не можем сделать тоже самое? Ведь вся объектная модель в нашем распоряжении, надо просто ей грамотно воспользоваться

Чучундер 25.05.2018 03:00

", удивился только тому как же кривовато их делают даже крупные поставщики. "
- ну, если сделано с какойто автоматизации - то обычно более-менее. если манагер поставщика лабает кривыми ручонками - то все что угодно может быть

US1C 25.05.2018 09:03

Моим бухам, в свое время, предоставляли вообще в бумажном виде только, я научил их пользоваться FineReader-ом и под выходные файлы Excel сделал обработку загрузки. Поскольку структура получившегося файла была заранее не известна, приходилось анализировать содержимое каждой ячейки.

USSR 25.05.2018 13:30

Ну в общем, все не так страшно. Решение даже проще, чем в частном случае с 4 артикулами. Для каждой колонки задействовал 2 номера строки, один - общий для читаемой таблицы и второй - номер последней удачно прочитанной в "попытке" строки. Сначала читаем в в строке по общему номеру, если неудачно, но по счетчику колонки. Вот и весь конвертер. Есть еще более сложный случай, но там другая история

USSR 26.05.2018 09:27

Прочитал и 2 наиболее заковыристых файла. Всем спасибо )


Текущее время: 21:26. Часовой пояс GMT +3.