Подстановка таблиц Excel в шаблоны Word

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

Что для этого нужно:

 

1. Включаем в настройках программы опцию вставки таблиц:

 

2. В исходной таблице Excel создаем столбец, где у нас будут храниться ссылки на вставляемые таблицы (столбец может называться как угодно),
выделяем ячейку в этом столбце (в строке с данными),
и нажимаем комбинацию клавиш Ctrl + Shift + T для вызова диалогового окна выбора таблицы:

диалоговое окно выбора вставляемой в шаблон Word таблицы

 

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

выбор диапазона ячеек таблицы, для вставки в шаблон Word

 

4. В выделенную ячейку исходной таблицы будет вставлена запись примерно такого вида:

<ExcelTable>/платежи/график/Excel

По этой записи надстройка FillDocuments понимает, что в шаблон Word, на место метки {Вставляемая таблица},
надо вставлять не текст ячейки, а таблицу, параметры вставки которой сохранены в этой ячейке.

 

Что обозначают параметры (разделенные слешем):

<ExcelTable> - это метка, которая говорит надстройке, что надо вставлять таблицу, а не текст ячейки

платежи - имя листа, с которого будет взята таблица

график - адрес или имя диапазона ячеек, который будет скопирован в шаблон Word

Excel - название режима вставки

 

Поэкспериментировав с выбором различных диапазонов и режимов, вы можете получить другие варианты метки, например:

<ExcelTable>34.xlsm/Спецификация/A2:F3/Word

Эта метка означает, что таблица будет скопирована из файла 34.xlsm, расположенного в папке Таблицы
(папка должна иметь именно такое название - Таблицы, и располагаться там же, где находится файл надстройки FillDocuments),
копироваться будет диапазон ячеек с A2 по F3, и при вставке будет выбран режим «использовать форматирование Word»


 

Что же делать, если количество строк во вставляемой таблице меняется, и задать фиксированный диапазон таблицы не получится?

Есть 2 варианта решения проблемы:

Способ 1:  вместо выбора диапазона, поставить галочку «все заполненные ячейки»

Обратите внимание - кнопка выбора диапазона становится недоступной, а в поле адреса высвечивается,
какой диапазон ячеек Excel считает заполненным на этом листе.

В диапазон могут попасть «пустые» строки или столбцы, - на самом деле, для Excel они не совсем пустые,
а, например, содержат какое-то форматирование или формулы.

Потому, чтобы этот способ корректно работал, необходимо выделить целиком лишние («пустые») строки и столбцы,
и нажать в меню Excel «Очистить - Очистить всё»

После этого (сохранения, закрытия и повтороного открытия файла со вставляемой таблицей),
в диапазон «заполненных ячеек» попадут только нужные ячейки.

 

Способ 2: сделать динамическую таблицу

Этот вариант посложнее (надо немного разбираться в формулах) - но он более универсальный,
и позволяет автоматизировать заполнение подставляемой таблицы (например, графика платежей)

Во вложении к статье - пример такой таблицы.

В первой строке таблицы прописаны формулы, и протянуты (с запасом) на 200 строк вниз
(т.е. во всех строках - одни и те же формулы)

Рамки ячеек в заполненных строках выполнены при помощи условного форматирования
(назначено правило для 5 столбцов - рисуем рамки, если ячейка в первом столбце непустая)

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

Имени график назначена формула =СМЕЩ(платежи!$A$1;0;0;платежи!$H$5+2;5)

 

 

 

Вложения:

Комментарии

Сергей, такого нет в программе (слишком специфическая проблема)
Только если программу дорабатывать (недешево), или макрос написать, который будет включать эту опцию для сформированных документов.

Игорь, добрый день!

Схожие вопросы и ответы уже были, но хотел бы уточнить один конкретный момент:
* в шаблон *.docx подставляется ссылка на таблицу из Excel - как текст;
* при этом в Word нет функционала (насколько мне известно), который обрабатывает текст, как вложенную таблицу;
* конкретно: нет возможности применить к ссылке на таблицу из Excel (вставленную как текст: {Перечень_номенклатуры}) такую функцию как "Свойства таблицы" -> "Строка" -> "повторять как заголовок на каждой странице";
* подскажите, пожалуйста, нет ли какого-нибудь обходного решения для решения данной задачи?
* ...в данный момент, каждый раз после формирования документов из шаблона, приходится открывать каждый конкретный сформированный документ и выполнять указанную манипуляцию вручную.

Заранее благодарю за ответ!

Сергей, всегда можно задать диапазону другое имя (у одного и того же диапазона может быть много имён)
Просто введите другое имя для диапазона, и Excel его запомнит тоже

Имя диапозона ячеек всегда автоматически называется _xlfn.SINGLE и изменить его невозможно, из за этого таблица не импортируется в word

Делаю всё по инструкции, но таблица не вставляется

Евгений, такие настройки в программе не предусмотрены, но они и не нужны.
Таблица же вставляется на место соответствующего кода поля, - так вот какое форматирование (выравнивание, отступы и прочее) заданы абзацу с кодом поля, такое применится и к вставленной таблице.

Здравствуйте!
Очень помогает надстройка, но я не разобрался как выбирать настройки вставляемой таблицы, как то центрирование на листе или перенос заголовков, это вообще входит в функционал надстройки или не предусмотрено?

Лист содержит формулы, которые используют имена для выведения чисел прописью(тыс={0;"тысячz":1;"тысячаz":2;"тысячиz":5;"тысячz"} и т.п.). На этапе выделения диапазона таблицы для вставки в договор, диапазон(B9:I12) автоматически переименовывается в "тыс". Почему?

УРА!!! Разобрался! Для того, чтобы таблицы вставлялись, надо в Excel присвоить имя диапазону таблицы.
Разработчику - ОГРОМНОЕ СПАСИБО и РЕСПЕКТ!!!

Здравствуйте, Анатолий
Ограничений никаких нет, - бывает, что либо настроено что-то не так, либо Office глючит, либо внешние программы портят содержимое буфера обмена.
В большинстве случаев всё работает сразу, но иногда поколдовать немного приходится.

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

Проблема как у Дениса - Word не вставляются таблицы Excel.
Office 2010.
Может, есть какие-либо ограничения, не описанные в справке?

автору респект программа очень помогла, жаль администрация не дает денег на покупку лицензии

Здравствуйте, Денис

Убедитесь, что используете последнюю версию программы
(при использовании Office 2013 эта функция раньше не работала, изменения в программу внес несколько дней назад)
Если вы скачали программу больше 4 дней назад, - скачайте свежую версию, и замените имеющийся у вас файл надстройки при закрытом Excel)

Если не получится, - звоните в скайп, разберемся, почему не работает

Здравствуйте!
Помогите разобраться с подстановкой таблиц в Word. Ваши подсказки все проштудированы. Возможно уже кто то спрашивал, но я так и не нашол в комментариях эту тему.
В исходной таблице комбинацией клавиш устанавливаю ссылку на файл с таблицей с режимом вставки Picture. Но на выходе, в документе, так и остается метка {Вставляемая таблица}. Пробую с разными режимами вставки, но все бестолку(((