mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!

Подстановка в шаблон Word данных из нескольких строк таблицы Excel

В данной статье описывается, как реализовать заполнение файлов Word при помощи программы заполнения документов,
если исходные данные для постановки в шаблон расположены в нескольких строках таблицы Excel.

Смотрите также инструкцию по настройке программы (режим «Multirow»),
для подстановки нескольких строк из исходной таблицы Excel в шаблоны Excel

(в шаблонах Excel, в отличие от Word, можно использовать формулы и дополнительные функции
типа склонения, суммы прописью, и т.д. и т.п.)

Для начала, в настройках программы включаем соответствующую опцию:


Теперь подготавливаем шаблон документа:


Необходимо выделить в шаблоне строку текста или строку таблицы, которая будет размножаться,
и присвоить выделенному диапазону закладку, начинающуюся с текста Multirow

ВАЖНО! Перед назначением закладки, надо выделить абзац текста или строку таблицы ЦЕЛИКОМ.

Для этого, подведите курсор к строке или абзацу СЛЕВА, — при этом, курсор изменит направление, - стрелка будет направлена в правый верхный угол.
После этого, просто щелкните мышом, — Word выделит абзац / строку целиком.

Таких размножающихся строк таблицы (с закладками Multirow) может быть несколько. Закладки будут называться Multirow1, Multirow2, Multirow3 и т.д.


Обратите внимание на символ # в кодах полей для размножаемых строк.

Если написать просто {КодПоля} в размножаемой строке, - в каждой из сформированных строк окажется один и тот же текст (из первой выделенной строки исходной таблицы).

А если написать {КодПоля#} - будет подставляться текст из разных строк (см. скриншот выше, и пример результата ниже)


Собственно, на этом настройка завершена. Сохраняем изменения в шаблоне, закрываем его, — и можно пробовать.


Выделяем нужные строки в исходной таблице Excel, и запускаем заполнение документов

Результат: (для каждой из выделенных строк Excel, в документ Word добавлена запись)



PS:

Шаблон, в процессе обработки программой (перед подстановкой данных), будет преобразован в такой вид:

(строка с меткой Multirow размножится нужное количество раз)

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Во как :) Даже мой приер использовали D)

Здравствуйте!

Можно ли так же формировать данные в таблицу в Ворде ? Просто со списком понятно, а если необходимо в Ворде составить таблицу ?

Здравствуйте, Михаил
Для таблицы, всё делается аналогично, - только метку Multirow надо назначать строке таблицы, а не абзацу, как в этом примере

Здравствуйте, реализовать разное количество строк в шаблоне и результате, которые не всегда будут совпадать. Т.е. в шаблоне я проставлю 20(допустим это предельное значение) а из исходной таблицы я буду всегда выбирать по разному от 10 до 20ти. В результате тогда будут оставаться эти неиспользованные строки с соотв. названия {ФИО}, можно ли от них избавиться? Надеюсь вы меня поняли)

Для того этот режим и сделан, чтобы вы в шаблоне оставили ОДНУ строку (с меткой Multirow) - а программа сама размножила эту строку столько раз, сколько строк в исходной таблице Excel выделено

Не уверен что полностью понял, т.е. шаблон должен выглядеть след. образом {ФИО#Multirow} ?

Присоединяюсь к последнему вопросу. У меня функция multirow не работает, опишите, пожалуйста, более подробно

Если по инструкциям разобраться не можете, - могу помочь с настройкой.
От вас для этого надо: http://ExcelVBA.ru/help

Добрый день,

мне необходимо чтобы шаблон в ворде, состоящий из 1 страницы, копировал сам себя на каждой следующей странице внутри одного файла, и в каждой новой странице в шаблон были подставлены новые данные из строк экселя. Подскажите порядок действия.

Здравствуйте
В моей программе нет такой возможности, - только создание отдельных документов.
Воспользуйтесь штатной функцией Word «слияние», — она как раз для такого предназначена.

Здравствуйте. Программа очень удобная.
Правда, сначала MultiRow не работала с таблицей - просто не обрабатывала загнанные в ячейки {поля#}. Но я попробовала создавать таблицы разными способами, и какой-то из вариантов сработал, всё получилось.
Но у меня есть проблема. В моих документах мне очень нужно иметь три разных блока с подобным многострочным заполнением. А присваиваемая закладка только одна. Нельзя ли ввести ещё пару дополнительных? Что-нибудь вроде "Второй_MultiRow" и "Третий_MultiRow".
Это было бы спасением.
Но если нельзя - спасибо за программу в любом случае.

А кто вам сказал, что закладка может быть только одна?
Создайте закладки MultiRow2, MultiRow3 и т.д., и проверьте, — всё будет работать.
(в статье на втором скриншоте показано и написано про 2 закладки, - для увеличения скриншота, щелкните по нему мышом)

PS: На всякий случай, дополнил статью текстовым описанием, чтобы было понятнее.

Действительно, всё отлично работает.
Я немного не поняла объяснений, показалось, что MultiRow1, MultiRow2 и т.п. - это служебные закладки, которые создает не пользователь, а размножает сама программа.
Замечательно. Спасибо за ответ.

С таблицами всё таки не получилось разобраться, таблицу или её строку c закладкой из шаблона стирает, на выходном документе пустота. Простые строки с закладками multirow работают

Видимо, неправильно назначена метка multirow для строки таблицы (перед назначением метки, не вся строка была выделена, а только ячейки этой строки)
Потому размножение строки не срабатывает

Если сами не разберетесь, - могу помочь: http://ExcelVBA.ru/help

Как-то вчера заработало после долгих мучений, но принципа выделения строк я так и не понял, таблица из одной строки создаваться не хочет, как минимум 2 строки приходится делать

В статье написано:

ВАЖНО! Перед назначением закладки, надо выделить абзац текста или строку таблицы ЦЕЛИКОМ.

Для этого, подведите курсор к строке или абзацу СЛЕВА, — при этом, курсор изменит направление, - стрелка будет направлена в правый верхний угол.

Т.е. не надо выделять ячейки строки!
Дало подвести мыша слева от строки, и ОДИН РАЗ ЩЕЛКНУТЬ (выделится строка целиком)
После этого назначить закладку.
И всё будет работать.

Наконец то понял как ! ))) Надо подвести мыша слева от строки (за границей таблицы,стрелка БЕЛОГО ЦВЕТА будет направлена в правый верхний угол) и ОДИН РАЗ ЩЕЛКНУТЬ (выделится строка целиком)

Добрый день!
Программа действительно мощная, но возник вопрос:
Выделаю курсором (подвожу к строке или абзацу СЛЕВА) несколько строчек (абзацы разные, т.к. разделены Энтером), создаю закладку MultiRow. Запускаю формирование - пустота. Пробовал каждую строку (абзац в моём случае) загонять в отдельную закладку MultiRow1 и MultiRow2 - то же самое, не понимает программа 1 и 2 в названии закладок.
Проверяю работоспособность на одной строке - всё в порядке.
Что я не учёл?
Спасибо!

Здравствуйте, Михаил
Закладки с именами типа MultiRow1 и MultiRow2 программа должна понимать (обрабатываются любые закладки, название которых начинается со слова MultiRow)
Насчёт нескольких строк (абзацев) под одной закладкой - не проверял

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

Могу предложить неочевидный, но точно работающий способ:
1) вставляете в шаблон ТАБЛИЦУ из 2 строк и одного столбца
2) первую строку делаете минимальной высоты, установкой размера шрифта = 1 пункт
3) во вторую ячейку (строку) вставляете несколько абзацев размножаемого текста
4) второй строке таблицы назначаете метку Multirow
5) делаете рамки таблицы невидимыми

так точно будет работать, и выглядеть результат будет также, как и без таблицы.
PS: первая (пустая) строка таблицы нужна, т.к. без неё размножение строк не всегда корректно выполняется.

Отлично! Действительно сработало, спасибо!
А в Экселе возможно копирование нескольких строчек? Если указать каждую строчку MultiRow1, MultiRow2, MultiRow3, то в результате он перечислит значения из исходной таблицы, но в виде:
Иванов
Петров
Сидоров
Иван
Петр
Сидор
Иванович
Петрович
Сидорович
А должно быть:
Иванов
Иван
Иванович
Петров
Петр
Петрович и т.д.

Михаил, из описания проблема непонятна.
Если сами не разберетесь, - звоните в скайп, попробую помочь
От вас для этого надо: http://ExcelVBA.ru/help

Другими словами, задача та же, что и для Ворда. А в Экселе как это же осуществить? Какой хитростью воспользоваться?
Заранее спасибо!

Так в Excel выделяете блок из 3 строк, и назначаете ему метку (имя) Multirow
В Excel всё должно корректно копироваться, независимо от количества строк в именованном диапазоне

Спасибо огромное за функцию MultiRow! Все получилось с первого раза! Но возник вопрос, возможен ли перенос содержимого созданного документа Word в тело письма? Спасибо!

Здравствуйте, Светлана
Такой возможности нет, - пока только прикрепление заполненных файлов.

Но вы можете получить письмо нужного вида, настроив шаблон текста письма в формате HTML, — чтобы получить на выходе форматированный текст с подставленными значениями
(только на текст письма не распространяется функция Multirow)

Спасибо за быстрый ответ!
А если сначала сформировать файлы, положить их в какую-нибудь папку, и при повторном запуске программы скопировать содержимое файлов в письма (аналогично вставки по метке PasteWordDoc)?

Увы, такой вариант тоже не сработает.
В программе такое не предусмотрено, - ранее никто из пользователей не просил скрестить ежа с ужом подставлять в письма содержимое заполненного документа Word в режиме Multirow.

Могу доработать программу, - но только за дополнительную плату (работы много очень)

Доброго времени суток. Спасибо большое за программу.
Воспользовался программой Multirow и столкнулся с проблемой, что при вставке данных из таблицы нарушается строка и вставленные данные с новой строки. Возможно как-то сделать чтобы вставлялись не новая строка, а продолжался текст?

В режиме Multirow вставляются как размножаемые строки, так и обычные данные (из фиксированных ячеек, или первой выделенной строки).
Размножаемые строки (когда данные берутся сразу из нескольких строк исходной таблицы) - только на отдельных строках, а всё остальное - можно и внутрь текста вставить.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
  ____       _      _       ___           ____ 
| _ \ / \ | |__ |_ _| ___ / ___|
| | | | / _ \ | '_ \ | | / __| | |
| |_| | / ___ \ | | | | | | | (__ | |___
|____/ /_/ \_\ |_| |_| |___| \___| \____|
Введите код, изображенный в стиле ASCII-арт.