Режим MultiRow: один документ с данными из нескольких строк

По умолчанию, надстройка FillDocuments формирует отдельные документы для каждой из строк исходной таблицы.
Но, иногда, требуется подставить в один документ данные сразу из нескольких строк таблицы Excel.

Предположим, что у нас есть вот такая таблица в Excel, и перед нами стоит задача сформировать приказ на премирование сотрудников:

Причём, должно получиться не 14 отдельных документов (по количеству сотрудников), а один (или 4, по одному приказу на каждый отдел)

В этом нам поможет режим с названием MultiRow, реализованный специально для таких задач.

Включить режим MultiRow можно в настройках на вкладке «Дополнительно»:

 

Если нам нужен ОДИН общий приказ, мы включаем только первую галочку («Включить режим Multirow»), а если нужны отдельные приказы для 4 отделов, то включаем вторую опцию «Формировать по каждому шаблону столько файлов, сколько уникальных значений содержится в столбце», и указываем номер столбца с отделами — 3 «С»:

 

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

Инструкции по настройке шаблонов для режима Multirow:

 

Мы будем использовать такой шаблон:

 

ВНИМАНИЕ: настроенный файл шаблона и исходная таблицу Excel, на примере которых написана эта инструкция, прикреплены в конце этой статьи.
Можете скачать файлы, закинуть шаблон в папку Шаблоны, открыть таблицу Excel, и протестировать.

 

После того, как мы настроили шаблон, и поместили его в папку Шаблоны, можно пробовать сформировать документы.
Для этого:

  1. выделяем в исходной таблице несколько строк
    (либо в настройках на вкладке «Исходная таблица» включаем галочку «Формировать документы ПО ВСЕМ заполненным строкам таблицы»)
  2. нажимаем на панели инструментов кнопку Сформировать документы

 

Если мы всё настроили правильно, то по завершении заполнения приказов прогрессбар будет выглядеть так:

а в папке Документы должно появиться 4 файла:
(использовалась маска имени файла вида {%filename%} - {Отдел}.{%ext%} )

Документы

приказ о премировании - бухгалтерия.docx

приказ о премировании - сбыт.docx

приказ о премировании - склад.docx

приказ о премировании - снабжение.docx

 

Открываем один из сформированных файлов, и видим в нём следующее:

 

Если же мы в настройках не включали опцию «Формировать по каждому шаблону столько файлов, сколько уникальных значений содержится в столбце», то на выходе должны получить ОДИН документ, с данными из всех строк исходной таблицы:

 

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добрый день,

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

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

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

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

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

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

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

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

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

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