Создание этикетки товара в .doc из данных в xls
Добрый день коллеги!
Есть небольшая задача. В документе формата .doc есть шаблон этикетки с динамическими полями. Эти поля должны заполняться из файла .xls. Вот так выглядит этикетка (желтым помечены динамические поля) А так выглядит файл .xls Таких этикеток обычно от 500 до 700 штук. Готов оценить работу в $)) Скажите "сколько вешать в граммах"))) |
Заменить места, куда должно подставляться на значения [[Number]],[[RollN]],[[VCode]],[[RLength]]
Формат: wdFormatDocument97 Название файла: Номер рулона.doc Наличие Word,Excel, PowerShell 2+: Код:
# Входные файлы |
zhuk09, Ваша задача, в принципе, решается и без программирования, обычным слиянием.
|
Цитата:
Спасибо огромное за оперативный ответ)! Если что-то не получится, обязательно напишу) Цитата:
|
Цитата:
В принципе, тут ничего особо не изменилось за последние четверть века: готовится источник данных (другой документ Word с таблицей, таблица Excel, база данных Access, SQL, текстовый файл и т.п.), готовится основной документ слияния Word, в нём расставляются поля слияния, затем выполняются определённые действия над ним по слиянию, полученный результат либо сразу распечатывается, либо сохраняется, либо рассылается по почте. Отличия в мелких деталях, да в интерфейсе в зависимости от используемой версии Microsoft Office. Например: Слияние данных MS Excel и MS Word - Интеграция Excel с другими приложениями - Эффективная работа в Excel - Статьи об Excel - Мир MS Excel — только в Вашем случае, возможно, выбор наклеек вместо писем будет лучшим вариантом. Принципиальной разницы нет, но наклеек на одном листе сразу может быть несколько — скажем, если Вы их печатаете. Создание и печать наклеек с помощью слияния - Word Слияние с использованием таблицы Excel - Word и т.п. |
Цитата:
Цитата:
Меняются наклейки только на следующем листе)) |
zhuk09, тогда Вы явно выбирали не наклейки, потому как при выборе варианта «Наклейки» в каждую запись макета кроме последней добавляется поле Word «NEXT», вызывающее переход к новой записи источника данных:
Скрытый текст
Скрытый текст
В принципе, и сейчас ничто не мешает Вам добавить поля NEXT в макет в конец каждой наклейки (кроме последней) «ручками». |
Цитата:
Вот так выглядит структура этикетки Так Выглядит структура данных. В частности интересуют номера от 1 до 4 Теперь переходим к этикеткам. Стр.№1 И самая ВАЖНАЯ стр.№2 Вот такую неразбериху мы получаем на 2-ой и последующих страницах. Т.е по этой логике получается, что команда NEXT на следующей странице работает от данных, которые были в первой этикетке)! |
zhuk09, тогда попробуйте заново с начала, выбрав типом документа именно Наклейки:
Скрытый текст
В крайнем случае, упакуйте образец документа с шаблоном и таблицу в архив, каковой приложите к сообщению, либо выложите на RGhost или Яндекс.Диск. |
Вложений: 3
Iska, добрый день!
И так, если в процессе слияния выбирать типом документа наклейка то в дальнейшем возможны 2 варианта событий 1. а) Изменить макет документа. В процессе этого будет создан новый файл с заданным нами макетом б) заполнить поля слияния Файл во вложении 111111.docx 2. а)В выборе документа указать "Существующий документ". б) заполнить поля слияния Файл во вложении 222222.docx |
Вложений: 1
У Вас исходный файл — тихий ужас.
Кучу из сгруппированных надписей, автофигур и рисунка нужно по возможности превратить в текст. Первым делом убираем группировку. Затем переносим весь текст из надписей в новосозданную таблицу подходящих размеров. Знак ЕАС хорошо бы тоже было написать обычным текстом, но беглый поиск показал, что подходящего шрифта не наблюдается, посему идём на Wikipedia, берём оттуда EAC-black-on-white.gif, сохраняем и затем вставляем в нашу таблицу, разбив для этого одну строку на две строки, и затем разбив верхнюю строку на два столбца. Расположение вставленного в первую ячейку рисунка оформляем как «В тексте». Расставляем поля слияния и поле NEXT. В итоге получаем примерно такую картинку: Скрытый текст
Дублируем имеющиеся две строки нашего документа дважды (дабы получилось шесть строк), в последней убираем поле NEXT: Скрытый текст
Далее, как обычно, связываем документ с источником и делаем слияние: Скрытый текст
На что здесь нужно обратить внимание? Первое — это то, что при извлечении поля M из таблицы Excel данные извлекаются «честно», без корректировки. Что это означает? Не все десятичные дроби могут быть точно представлены в двоичном виде. Excel учитывает данный факт при их вводе и делает корректировку при отображении. Word же извлекает данные значения «как есть». Проще всего заранее преобразовывать в таблице Excel данные числа в текст. Второе — в таблице Excel использован диапазон вплоть до D564, и Word так же честно извлекает все данные из него (у меня получилось 188 страниц :)). Выход — либо вообще не заполнять эти строки в Excel при формировании таблицы, либо удалять эти лишние строки в Excel, либо ограничивать диапазон при слиянии, либо задавать ограничивающее условие при слиянии. Можете использовать любой вариант на выбор. Архив с исправленными исходными и результирующим файлами Наименование продукции.doc, A057173 DPL.xls, EAC-black-on-white.gif и Результат слияния.doc: Файл 145750. |
Цитата:
Цитата:
Цитата:
Но у меня остался вопрос по поводу файла 111111.docx, который был создан как изменение макета текущего документа. Ведь в этом файле нет ни каких сгруппированных надписей и автофигур. Там просто текст! Что там не так?! Или там так же в последних данных надо убрать правило "NEXT"??? |
Цитата:
Цитата:
Цитата:
|
Время: 22:53. |
Время: 22:53.
© OSzone.net 2001-