Перенос из таблицы встроенной во Writer в таблицу Excel с изменением структуры

Автор exeForce, 25 декабря 2012, 17:09

0 Пользователи и 1 гость просматривают эту тему.

exeForce

Здравствуйте, задача у меня стоит какая. Имеется один документ, в котором составлен список автомобилей в наличии автосалона, сделан он в MS Word в виде таблицы. Конечный результат - формирование feed'a для импорта на сайт в формате *.xml. На данном этапе меня интересует каким образом можно автоматизировать перенос таблицы из первичного документа в новый документ формата *.xls/*.ods с разбиением на большее количество столбцов. Т.е. в первичном документе имеется строка вида Nissan Quashkai 2+ XXX 2.0 AT, после переноса в новый документ должно быть по колонкам Nissan|Quaskai 2+|XXX|2.0|AT.
Реально ли это сделать в принципе, и если да то в какую сторону именно копать информацию?
P.S. Я в этом деле не то что новичок, а просто  нуль, не судите строго за возможно глупые вопросы. ;)

JohnSUN

Извини, не понял... Вот эта строка, которую в качестве примера кинул - "Nissan Quashkai 2+ XXX 2.0 AT" - это что? Одна ячейка в Вордовской таблице? Или все-таки целая строка, по одному слову в ячейке?
PS. А ответ на твой вопрос - да, вполне реально.
PPS. Добро пожаловать на форум
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

exeForce

Спасибо за приветствие. Полная строка которую я кинул для примера это одна ячейка в таблица в документе Word. Вот надо разбить её по определенным критериям, как я думаю, по словам, в ячейки таблицы. В какую именно сторону здесь порыть? Просто хотелось бы сделать это не разово, а автоматизировано, ну не знаю, например Макросом каким-то.

JohnSUN

Если честно, то я тоже начал думать в сторону макроса...
То есть вначале-то думал об обычном Скопировать-Вставить как текст-Разделитель Пробел. Но речь шла о постоянной выгрузке в XML, поэтому от мыслей о ручном копировании пришлось отказаться.
Действительно, макросом считать таблицу с данными, перебрать ячейки, разваливая их содержимое по разделителям на отдельные слова, и закинуть все что получилось в текстовый файл с нужными тэгами и расширением XML гораздо проще. Напишешь один раз - пользуешься многие годы. (Пока формат входных данных не поменяется)
Ну, давай попробуем "порешить проблему"...
Для начала кинь два файла-образца - вордовский док с таблицей и XML, который из этой таблицы получается. Реальные данные не нужны, достаточно, чтобы таблица была похожа на то, с чем работаешь обычно.
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

exeForce

Саратов, «Восток-Моторс» - первичный документ, Тех.требования - это конечный формат feed-документа. Здесь еще формирование xml документа упирается в один из тэгов, указывающий тип кузова. Он не указан первичном документе. Я вот думаю можно будет "научить" макрос вставлять тип кузова в зависимости от модели? Т.е. если модель получилась Nissan X-Trail - то я пишу макросу кузов - кроссовер и он запоминает, чтобы в дальнейшем автоматически выставлять?

[вложение удалено Администратором]

JohnSUN

Признайся честно, этот "Саратов, «Восток-Моторс»" ты уже сам сделал из настоящего первичного Вордовского документа? Ну, типа, думал, что задачу облегчишь? Или в самом первом сообщении ошибся и тип файла неправильно указал?
А то ведь я уже кой-чего начал набрасывать ориентируясь именно на текстовую таблицу... Ну, глянь во вложении. Это, конечно, далеко не то, что требуется в окончательном варианте, только предварительный набросок...


[вложение удалено Администратором]
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

exeForce

Я ошибся с форматом, сам ничего не переделывал. Почему-то отложилось в памяти, что это был именно вордовский документ с табличкой. Дико извиняюсь.

exeForce

Тестовую версию посмотрел, принцип именно тот, о котором я думал.

JohnSUN

Внимательно покрутил "Саратов, «Восток-Моторс».xls"
Должен тебя огорчить: прямо в таком виде дела не будет... скорее всего...
Разваливать столбец Комплектация еще куда ни шло - отрывающиеся "л.с.)" можно присобачить обратно.
Гораздо грустнее было обнаружить две цены в одной ячейке, разделенные переменным количеством пробелов.
Откуда берется такой исходник? Какая криворукая сволочь его готовит? Договориться с поставщиком данных о другом формате совершенно нереально? Ну, например, сделать для них удобную форму ввода или базу данных с несколькими ходовыми отчетами... пиво им поставить, в конце концов! Потому что программировать ЭТО нет никакого желания, сорри!  :(
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Hasim

Цитата: JohnSUN от 28 декабря 2012, 18:27Гораздо грустнее было обнаружить две цены в одной ячейке, разделенные переменным количеством пробелов.
Можно воспользоваться "Найти и заменить"
Выделяем столбец Е и делаем последовательно:
1. Найти __ (2 пробела)
  Заменить на ; (точка с запятой, например)
  Заменить все
2. Найти ;_ (точка с запятой, пробел)
  Заменить на ;
  Заменить все
3. Найти ;;;;
  Заменить на ;
  Заменить все
4. Найти ;;;
  Заменить на ;
  Заменить все
5. Найти ;;
  Заменить на ;
  Заменить все
6. Найти ;;
  Заменить на ;
  Заменить все

Теперь цены в столбце Е разделены всего одним знаком ;.



[вложение удалено Администратором]

JohnSUN

Да, конечно, ты как всегда прав... Можно... Нужно ли? Не скучно ли?
Опять же, с "одинокими" ценами как поступить? Отыскать ячейку без точки с запятой и заменить на удвоенное найденное? И это при том, что имеем дело с - вот же ж блин! - числом в ячейке электронной таблицы. Ну, как? Как можно использовать навороченный инструмент, за который изготовитель берет немножко баксов, который умеет вытворять с числами и текстами немыслимые вещи, как примитивную пишущую машинку?  ???
Грустно, чес-слово, грустно...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

exeForce

К сожалению они категорически отказываются менять принципе формирования исходного документа, т.к. эта форма их личного портала и подгонять её под нас они не хотят, а т.к. наша услуга предоставляется им бесплатно заморачиваться они не собираются :( Ну тут я могу сказать только "На нет и суда нет." В любом случае спасибо большое за участие и помощь :)

JohnSUN

Погоди, не уходи... Еще пообщаемся  ;D
Цитата: exeForce от 29 декабря 2012, 19:41
К сожалению они категорически отказываются менять принципе формирования исходного документа, т.к. эта форма их личного портала
Вот с этого места чуть подробнее. Ты о каком портале сейчас говоришь?
Цитата: exeForce от 29 декабря 2012, 19:41
и подгонять её под нас они не хотят,
Ну, это обычная история... Карнеги уверяет, что в любой ситуации можно повернуть дело так, что люди пойдут тебе навстречу и еще и благодарить будут... Нужно только сообразить, чего именно они хотят
Цитата: exeForce от 29 декабря 2012, 19:41
а т.к. наша услуга предоставляется им бесплатно заморачиваться они не собираются :(
Ага, классика: сделай доброе дело за вознаграждение - скажут большое спасибо. Окажи услугу на шару - на шею сядут...

Расскажи чуть подробнее про таблицу, из которой нужно сформировать xml.
Что это за данные, как ты их получаешь (как часто и каким путём), что за человек вбивает числа в одной ячейке и переносит со строки на строку пробелами?.. Возможно, сможем провернуть трюк, о котором говорил Карнеги...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

exeForce

Добрый день, не заходил сюда, т.к. сначала Новогодние заботы, а потом вал работы в связи с новым календарным годом. Таблицу эту я получаю раз в месяц от автодилера, кто и как заполняет эту таблицу я вообще не в курсе. Мне высылает маркетолог дилера, и я с него вручную забиваю на сайт. Но это настолько неудобно, что на внесение базы в 180-200 машин у меня уходит 2 дня точно рабочих. Тогда как за 1 рабочий день я нормально вношу 230-250 объявлений с, например, авито. У них есть свой сайт, на котором они публикуют этот документ, и просто в момент публикации пересылают еще и нам. Их сайт www.vostok-motors.ru

JohnSUN

Н-да... Забавная штука получается. Посмотрел на таблицу в разделе "Авто в наличии" - колонка "Стоимость" действительно содержит два значения.

Но! В отличие от той таблицы, что высылают тебе, здесь эти значения разделены не пачкой пробелов, а переводом строки. А значит эти данные проще обработать. Как ты смотришь на возможность брать данные не из присылаемого xls, а прямо с сайта?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне