Шаблоны Excel

Инструкция по настройке шаблонов формата Excel

Как и для любых других типов шаблонов, подготовка шаблона сводится к подстановке кодов полей типа {ФИО}, {должность} в ячейки файла шаблона, где ФИО и должность — название столбцов из исходной таблицы Excel с данными для подстановки.

Подготовить шаблон очень просто:

  1. берём за основу готовый файл документа (образец)
  2. заменяем в нём в нужных местах текст на коды полей
    (например, заменяем Иванов Сергей Петрович на {ФИО}, чтобы потом при заполнении на место {ФИО} программа подставила данные из таблицы Excel)
  3. сохраняем полученный файл под любым именем (например, акт.xlsx) в папку с шаблонами

 

Особенности настройки шаблонов Excel:
 

1. Проблема с искажением подставленных значений

Поскольку Excel любит автоматически форматировать введенные в ячейку значения (например, введите в любую ячейку текст 12-06, увидите в ячейке дату 12 июля), то при подстановке некоторых значений (артикулов, цен) они могут искажаться.
Например, артикул может потерять нули в начале (вставьте в ячейку текст 000123, увидите в ней 123, — Excel обрезал «лишние» нули). И не всегда установка текстового формата ячейки решает проблему (Excel всё равно проявляет инициативу)

Решается проблема просто, - добавлением одинарного апострофа ' перед кодом поля.
Т.е. в ячейку шаблона пишем не {Артикул}, а '{Артикул}
Этот апостроф не будет виден в ячейке, — он даёт экселю понять, что в ячейке находится текстовое значение, и что не надо его никак коверкать автоформатированием.
 

2. Подстановка чисел, с последующим их суммированием

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

Таким образом, в шаблон Excel будет подставлено не хранящееся в ячейке значение (число 12345,6789), а ТЕКСТ (возможно, с пробелом, и другим десятичным разделителем) «12 345,68»
Соответственно, на ячейку с таким текстом потом в сформированном документе не получится сослаться из формулы вроде =СУММ(), т.к. формула будет выдавать ошибку.

Решение проблемы:

  • РЕКОМЕНДУЕМОЕ: использовать модификатор кода поля value.
    Это позволит подставлять в шаблон именно значение ячейки, а не отображаемый в ячейке текст.
  • убрать форматирование числа с разделителем десятичных разрядов в исходной таблице Excel, или же сделать дополнительный столбец в исходной таблице, где будут отображаться те же числа, но без форматирования (формат ячеек Общий)
  • для суммирования подставленных числовых значений, вместо формулы вида =СУММ(G$6:G10), использовать формулу массива вида =СУММ(ЗНАЧЕН(G$6:G10))
    ВНИМАНИЕ: формула массива вводится нажатием Ctrl + Shift + Enter вместо Enter

 

3. Подстановка значений в формулы

В шаблонах Excel коды полей (например, {ФИО}) можно не только вставлять в ячейки в качестве значений, но и использовать в формулах.
Правда, использование этой возможности категорически не рекомендуется.
Гораздо проще (и правильнее) поместить код поля в невидимую ячейку (например, в скрытом столбце, под картинкой, или с белым цветом шрифта), и сделать так, чтобы формулы ссылались на эту «невидимую» ячейку.
Пример такого использования описан в инструкции по заполнению сложных шаблонов Excel
 

4. Поставлять данные только на определённые листы шаблона

Если шаблон Excel состоит из множества листов, и его заполнение занимает много времени, — есть возможность указать конкретные листы шаблона, в которых программа должна выполнять подстановку.
Такая опция есть в настройках на вкладке Дополнительно:

Комментарии

Возможно ли добавить функционал модификатор кода поля format? Для того чтобы подставлялось с учетом формата (число, выравнивание, шрифт, рамка, заливка)? А еще лучше с аргументами, типа format(с1;v0;s1;r0;z1;) , где с-число, v-выравнивание, s-шрифт, r-рамка, z-заливка, 1-сохранить, 0-нет.

Возможно ли как то решить вопрос с заполнением шаблона excel на защищенный паролем лист (при этом подстановка в ячейки редактирование которых разрешено)

Здраствуйте, а возможно ли формирование не каждого документа на конкретную строчку, а перенос всех строчек одной колонки в один файл шаблона в указанную колонку?

Здравствуйте, Юрий
Нет, форматирование не поддерживается.
Программа берёт только значения ячеек.

Краткое описание:
шаблон — файл EXCEL;
исходная таблица содержит ячейки с обычным форматированием и с "зачёркнутым" текстом;
включен режим multirow.

Вопрос:
есть ли возможность при заполнении шаблона данными из исходной таблицы "подхватывать" форматирование ячеек в шаблон? Интересует только лишь "зачёркнутый" текст.