Автоматическая генерация это word

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

Автоматическое создание документа — базовая единица оптимизации ресурсных затрат Вашей организации. Деятельность любой компании неразрывно связана с документооборотом, будь то управление персоналом — кадровая служба (заявления на отпуск, увольнение, больничный), бухгалтерия, либо же просто формирование определенного пакета документов по той или иной активности компании. Зачастую, сам процесс подготовки документов сводится к монотонным действиям по расстановке конкретных значений по заранее отведенным позициям в шаблоне. Слабыми сторонами данного подхода являются: низкая скорость подготовки документации и высокая степень возникновения ошибки ввиду человеческого фактора. При росте объема документации вероятность ошибки только возрастает, например, Вам нужно подготовить доп соглашения для всего штата сотрудников. Основные задачи программы автоматического создания документов Word на основе шаблонов — свести к минимуму вероятность возникновения ошибок ввода, значительно увеличить скорости самого процесса. Все действия сводятся к выбору записи или записей данных о сотруднике/клиенте/заказе/поставщике из исходной таблицы и указанию шаблона подготавливаемого документа.

Ссылки для скачивания:

— Скачать макрос автоматического создания документов Word по шаблону (архив 208КБ)

Автоматическое создание документа

Как начать работу с автоматическим формированием документов Word:

1. Разархивируйте скачанный архив с файлом с помощью программы 7zip или WinRar.

2. При появлении сообщения о доверенном источнике: закройте программу, кликните правой кнопкой мыши на файле — «Свойства», далее установите галочку напротив «Разблокировать».
сообщение безопасности платежного календаряразблокировать платежный календарь

3. Если в Вашем Excel запуск макросов по умолчанию отключен, в данном окне необходимо нажать «Включить содержимое».включить содержимое

4. Для полноценной работы с файлом необходимо нажать «Разрешить редактирование» при появлении данного сообщения.разрешить редактирование

Автоматическое создание документа — этап 1. Настройка программы

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

Таблица исходных данных состоит из строки меток (условных обозначений каждого столбца) — строка №3, заголовка с названиями столбцов — строка №4 и построчных записей — начиная с 5й строки. Количество колонок, их названия и условные обозначения можно свободно редактировать, соблюдая простые правила:

  • Если Вы добавляете новую колонку, у нее должно быть название и условное обозначение.
  • Для склонения ФИО сотрудника в Родительный или Дательный падежи используйте встроенные функции =RODP() и =DATP() соответственно.
  • Не допускайте наличия пустых колонок (без названий и обозначений) между колонками данных.
  • Не удаляйте колонку «ФИО сотрудника», т.к. она является ключевой для работы программы. Вы можете ее переименовать — заказчик, ответственный, клиент, менеджер и т.д. на свое усмотрение. Она используется в процессе сохранения итогового word документа, как часть имени, например: Иванов А.В. Заявление на отпуск, Петров В.К. Накладная на отгрузку.

Автоматическое создание документа по шаблону

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

Панель кнопочного управления автоматизированного создания документов состоит из следующих элементов интерфейса:

  • Добавить запись — вставляет новую строку в заранее выбранную вами ячейку. Также можно добавлять записи вручную с помощью стандартной вставки строки excel;
  • Добавить группу — вставляет новую серую строку группы в заранее выбранную вами ячейку;
  • Удалить элемент — удаляет любую выбранную строку таблицы данных;
  • Очистить таблицу — полностью стирает данные из таблицы. Можно использовать для очистки листа от тестовых данных;
  • Создать документ — выбор шаблона word для построения документа. Перед этим в таблицы должны быть выбраны записи данных, по которым необходимо произвести построение.

Перед запуском процедуры автоматизированного создания документов убедитесь, что указаны верные пути к word шаблонам и папке сохранения результатов построения!

Автоматическое создание документа — этап 2. Шаблоны Word

автоматизированный шаблон Word

Процесс подготовки word шаблонов для автоматического построения документов включает в себя рад несложных действий. Создайте общую папку для всех шаблонов, в ней создайте папки категорий, чтобы разделить шаблоны по областям применения (названия категорий укажите на свое усмотрение). В каждой подпапке определенной категории расположите непосредственно документы word с расставленными метками. Метки расположены в 3й строке таблицы над каждый ее столбцом. Поставьте метки в те места шаблона, в которые вы хотите прокачать данные из определенного столбца. Например, там где должно быть фио сотрудника укажите [fio].

Порядок действий запуска автоматического создания документов

Когда таблица данных заполнена, а метки в шаблонах расставлены по своим местам пора приступать к самой интересной части — автоматизированному формированию документов word.

В первую очередь, выделите строку или диапазон данных таблицы, по которым хотите сформировать документы:

Автоматическое создание документа Word

Шаг номер два — нажмите кнопку «Создать документ». Перед Вами появится диалоговое окно, в котором нужно выбрать подпапку — категорию документа и один, либо несколько шаблонов построения. Далее кликните по кнопке «Сформировать документы».

окно выбора шаблон Word

Мои поздравления! Документы успешно сформированы и лежат по указанному Вами пути для сохранения!

Заказать разработку программ или доработку любого проекта

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

Всегда рад ответить на Ваши вопросы, готов подготовить оптимальные решения обработки данных для Вашего бизнеса, автоматизировать рутинные процессы, связаться со мной можно через WatsApp 89507094770, сайт excellab.ru или написать на почту: goryaninov@bk.ru, профиль вк:

Ссылки для скачивания:

— Скачать макрос автоматического создания документов Word по шаблону (архив 208КБ)

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

— Дневной табель учета рабочего времени в excel
— Почасовой табель учета рабочего времени в excel
— Табель учета рабочего времени в днях по форме Т-13
— Табель расчет и планирование вахты
— Табель учета рабочего времени с учетом ночных смен
— Платежный календарь в excel

Как в Ворде сделать содержание автоматически

В MS Word можно выполнять различные задачи, и далеко не всегда работа в этой программе ограничивается банальным набором или редактированием текста. Так, выполняя в Ворде научно-техническую работу, набирая реферат, диплом или курсовую, делая и оформляя доклад, сложно обойтись без того, что принято называть расчетно-пояснительной запиской (РПЗ). Сама же РПЗ обязательно должна включать оглавления (содержание).

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

Такой подход к оформлению содержания в Ворде хорошо работает лишь с документами небольшого объема, коими могут быть лабораторные или типовые расчеты. Если же документ — это курсовая или дипломная работа, научная диссертация и тому подобное, то соответствующий ему РПЗ будет состоять из нескольких десятков основных разделов и еще большего количества подразделов. Следовательно, оформление содержания столь объемного файла вручную займет довольно много времени, параллельно затратив нервы и силы. Благо, сделать содержание в Word можно и автоматически.

Создание автоматического содержания (оглавления) в Ворде

Самое верное решение — начинать создание любого обширного, большого по объему документа именно с создания содержания. Даже в случае, если у вас еще не написано ни одной строчки текста, потратив всего 5 минут на предварительную настройку MS Word, вы сэкономите себе значительно больше времени и нервов в дальнейшем, направив все усилия и старания исключительно на работу.

1. Открыв Ворд, перейдите на вкладку «Ссылки», расположенную на панели инструментов вверху.

Вкладка Ссылки в Word

2. Кликните на пункт «Оглавление» (первый слева) и создайте «Автособираемое оглавление».

Оглавление в Word

3. Перед вами появится сообщение о том, что элементы оглавления отсутствуют, что, собственно, не удивительно, ведь вы открыли пустой файл.

Пустое оглавление в Word

Примечание: Дальнейшую «разметку» содержания вы можете делать по ходу набора текста (что более удобно) или по завершению работы (займет заметно больше времени).

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

Добавить текст в Word

Примечание: Вполне логично, что вы можете создавать не только заголовки меньшего уровня, но и основные. Кликните по месту, где вы хотите его разместить, разверните пункт «Добавить текст» на панели управления и выберите «Уровень 1»

Lumpics.ru

Заголовки и подзаголовки в Word

Выберете желаемый уровень заголовка: чем больше цифра, тем «глубже» будет этот заголовок.

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

Вид Структура в Word

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

Заголовки, подзаголовки в Word

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

Скрыть текст в Word

По ходу написания вами текста созданное в самом начале «Автособираемое оглавление» будет изменяться. В нем будут отображаться не только создаваемые вами заголовки и подзаголовки, но и номера страниц, на которых они начинаются, уровень заголовка тоже будет отображаться визуально.

Автосодержание в Word

Это и есть столь необходимое для каждой объемной работы автосодержание, сделать которое в Ворде очень просто. Именно содержание будет находиться в начале вашего документа, как это и требуется для РПЗ.

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

Содержание в структуре в Word

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

Урок: Как конвертировать PDF в Word

На этом все, теперь вы знаете, как создать автоматическое содержание в Ворде. Стоит отметить, что данная инструкция применима ко всем версиям продукта от Майкрософт, то есть, таким образом можно сделать автоматическое оглавление в ворде 2003, 2007, 2010, 2013, 2016 и любых других версиях этого компонента офисного пакета. Теперь вы знаете немного больше и сможете работать более продуктивно.

Содержание

  • 1 Надстройка для автоматизированного заполнения договоров в Word
    • 1.1  
  • 2 Автоматическое заполнение договора между двумя юридическими лицами
  • 3 Автоматическое заполнение договора между юридическим и физическим лицом
  • 4 Возможности надстроек для заполнения договоров
  • 5 Универсальная надстройка для Word по заполнению любых документов Word данными из Excel
  • 6 Надстройки для Excel по заполнению любых документов Word
    • 6.1 Другие материалы по теме:
    • 6.2 Создание автоматического содержания (оглавления) в Ворде
    • 6.3 Помогла ли вам эта статья?

Александр задал вопрос:

Хочу сделать шаблон в 2007-м, с использованием элементов управления, при этом один элемент должен повторяться в нескольких местах документа. То есть, поменял дату в начале и она поменялась по всему документу. Аналогично сделано в стандартном шаблоне «Современный отчет». Например, там есть «подзаголовок» и еще эти элементы выделены оранжевыми «тегами». Но у меня ничего не получается, и в хелпе ничего нормального на эту тему нет.

В стандартных шаблонах редактора Word 2007 используются именно элементы управления содержимым, а не закладки с полями REF в версии редактора Word 2003 (читайте в заметке ).

Самый простой способ добавить в свой шаблон (используйте шаблоны, а не документы!) блок с повторяющейся информацией, это воспользоваться стандартными блоками (экспресс-блоки). На вкладке ленты Вставка в группе команд Текст нажмите кнопку Экспресс-блоки. Из списка команд выберите команду Свойства. Откроется дополнительное меню из 15 встроенных свойств документа:

Для наших целей вполне подойдут два свойства: Аннотация и Примечание.

Вставьте в документ какой-нибудь один блок из вышеназванных, например, Примечание и, при необходимости, задайте его свойства. Чтобы задать свойства для блока, выделите блок, перейдите на вкладку Разработчик и в группе команд Элементы управления нажмите кнопку Свойства. Откроется диалоговое окно Свойства элемента управления содержимым:

В этом окне можно изменить данные в полях Название, Тег, задать стиль для блока и др.

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

Но существует один недостаток в этом решении. В вашем шаблоне может быть не один текстовый блок (с определенным текстом), который нужно повторять в нескольких местах документа. Если вы вставите еще одно Примечание, то его текст будет аналогичным тексту в уже имеющихся в документе блоках. Но, что если нужно будет добавить другой блок с другим текстом? Какой же выход?

Один из разработчиков дополнений к радактору Word — Грегори Макси — создал специальный шаблон-надстройку для Word 2007, с помощью которого можно создавать различные текстовые элементы в шаблонах для реализации повторяющихся данных в тексте. Вот ссылка на статью Грега (в конце статьи есть ссылка на архивированный файл шаблона): . Распакуйте архив в папку STARTUP (C:Program FilesMicrosoft OfficeOffice12STARTUP) и перезагрузите редактор. На ленте редактора появится вкладка Надстройки, где будут размещены три кнопки:

Работа с этой надстройкой очевидна и не представляет трудностей (достаточно начальных знаний английского языка). На странице автора в картинках все объснено.

Перед тем, как создавать ваши блоки, нужно сохранить документ с одним из расширений Word 2007. Впрочем, программа сама предупредит вас об этом.

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

Итак, менеджеры или кураторы договоров, используя текстовый редактор, (например Microsoft Word) вносят изменения в типовые формы, шаблоны, корректируя определенные поля, такие как номер и дата договора, наименование контрагента, стоимость договора, паспортные данные, банковские реквизиты. При этом пересчитываются различные суммы, такие например как НДС, кстати суммы в договорах зачастую дублируются прописью. Для составления преамбулы договора, такие параметры как имена, фамилии и должности склоняются в различные падежи. Все это требует повышенного внимания и приводит к зрительным нагрузкам. Чем объемнее договор, чем больше в нем различных форм и приложений, тем сильнее желание автоматизировать его заполнение.

Автоматическое заполнение договоров можно реализовать различными способами, но подробнее остановиться хотелось бы на наиболее удобном и доступном. И как ни странно такой способ заложен в самом текстовом редакторе Microsoft Word. Встроенный в редактор язык программирования Visual Basic for Application позволяет успешно автоматизировать рутинные задачи, к которым несомненно можно отнести и заполнение договоров. Видов договоров множество: договор подряда, договор поставки, договор аренды, договор купли-продажи, договор комиссии, кредитный договор и многое другое, но все они имеют приблизительно одинаковые поля для заполнения. Если эти поля разметить специальным образом в шаблоне договора, а необходимую информацию запросить у пользователя через диалоговое окно, то впоследствии можно программно заменить эти поля на необходимую информацию.

как сделать в word автозаполнение

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

Использовать систему для ускоренного заполнения полей договора проще, чем кажется на первый взгляд. Для начала нужно определиться с теми параметрами, которые будут запрашиваться у пользователя надстройки и выбрать наиболее подходящую конфигурацию надстройки. Далее необходимо скачать и установить надстройку для Word по заполнению договоров. Предварительно разметить свой шаблон договора метками, описанными в документации к надстройке. Открыть шаблон договора и вызвать диалоговое окно надстройки. Затем заполнить поля диалогового окна (вручную заполняется только часть полей, другая часть формируется автоматически, например суммы, написанные прописью и даты) и запустить программу нажатием кнопки «OK».

 

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

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

В надстройке реализован выбор валюты (по умолчанию установлены рубли), преобразование даты, автоматический подсчет НДС с округлением до двух знаков после запятой (при наличии этого налога), автоматическое написание суммы договора и налога прописью, автоматическое распознавание пола подписанта по имени и отчеству с последующим склонением в родительный падеж (для преамбулы) должности, фамилии, имени и отчества. Если в данных подписантов вместо полных имен используются инициалы, то программе будет необходима подсказка пола подписанта при помощи опции М/Ж. После автоматического заполнения полей сформированный договор сохраняется под уникальным именем в папку, в которой хранится шаблон.

как сделать в word автозаполнение

надстройка для заполнения договора между юридическими лицами (полный вариант)

На практике чаще используется упрощенная модель надстройки, когда «свои» реквизиты указываются в тексте договора и изменениям не подлежат, а в диалоговом окне запрашиваются только данные контрагента.

как сделать в word автозаполнение

видео по работе с надстройкой

надстройка для заполнения договора между юридическими лицами (сокращенный вариант)

Автоматическое заполнение договора между юридическим и физическим лицом

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

как сделать в word автозаполнение

надстройка для заполнения договора между юридическим и физическим лицом (стандартный вариант)

Возможности надстроек для заполнения договоров

Надстройки позволяют осуществлять:

1) выбор валюты;

2) преобразование даты к виду «26» сентября 2013;

3) автоматический подсчет НДС с округлением до двух знаков после запятой (при наличии этого налога);

4) автоматическое написание суммы договора и налога прописью;

5) автоматическое распознавание пола подписанта по имени и отчеству с последующим склонением в родительный падеж должности, фамилии, имени и отчества (для преамбулы);

*Если в данных подписантов вместо полных имен используются инициалы, то программе будет необходима подсказка пола подписанта при помощи опции М/Ж.

6) автоматическое формирование инициалов подписантов;

7) автоматическое сохранение сформированного договора под уникальным именем в папку, в которой хранится шаблон;

8) импорт данных из диалогового окна в файл Excel;

9) экспорт данных из файла Excel в диалоговое окно.

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

Универсальная надстройка для Word по заполнению любых документов Word данными из Excel

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

как сделать в word автозаполнение

надстройка для Word по заполнению документов Word данными из Excel

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

Надстройки для Excel по заполнению любых документов Word

Все рассмотренные выше надстройки устанавливаются в приложение Microsoft Word. Для заполнения шаблонов документов Word можно также использовать надстройки, которые устанавливаются в приложение Excel. При этом запускаться надстройка будет из Excel. В случае, когда исходные данные вносятся на рабочий лист книги Excel, логичнее использовать надстройку для Excel, чтобы не совершать лишних движений и не переходить из одного приложения в другое. Узнать больше об использовании надстроек для Excel.

Другие материалы по теме:

как сделать в word автозаполнение MS Word — Сокращение времени подготовки документов.

6 лет назад

MS Word: Сокращение времени подготовки документов посредством использования закладок и перекрестных ссылок,…

как сделать в word автозаполнение Заполнение документов Word данными из Excel. Слияние Word

11 меc назад

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

как сделать в word автозаполнение как … сделать поля ввода в Word

3 лет назад

как сделать шаблон документа в ворд, электронные бланки.

как сделать в word автозаполнение Слияние Excel и Word

5 лет назад

КАК добавить данные из EXCEL в WORD методом Слияния. В Word’е есть такая замечательная вкладка (на ленте) — называет…

как сделать в word автозаполнение Создание автоматического содержания в MS Word 2010

8 лет назад

Создание автоматического содержания (оглавления) в MS Word 2010 Внимание! Тестовый вариант видео. Вскоре будет…

как сделать в word автозаполнение Поля и элементы управления в документах Word (часть 1)

2 лет назад

Наш сегодняшний бесплатный урок Word для начинающих посвящен работе с текстовыми полями, флажками, списками….

как сделать в word автозаполнение Как сделать оглавление в Microsoft Word

5 лет назад

Как сделать оглавление в Microsoft Word Помощь проекту, яндекс кошелёчек : 4100187251.

как сделать в word автозаполнение Как сделать форму документа в Word?

7 лет назад

Инструкция, как переделать документ в Word. Сделать форму документа, удобную для заполнения. Иногда фирмы…

как сделать в word автозаполнение Автозамена в Word

4 лет назад

Автозамена в Word — это отличный элемент работы с текстом в Word, который позволяет быстро и тщательно заменять…

как сделать в word автозаполнение Как запретить изменение текста в документе Word

7 меc назад

Предположим, у вас имеется документ Word, который вы хотите защитить от случайных изменений другими пользова…

как сделать в word автозаполнение Автозаполнение форм в Google Chrome — настройка для удобной работы

2 лет назад

Как настроит автозаполнение форм в Google Chrome и убрать всё лишнее? Давайте работать удобно. «Город Копирайтин…

как сделать в word автозаполнение Оформление договора в MS Word (адреса сторон) с помощью невидимых таблиц.

7 лет назад

Видеоурок проекта Античайник. Сергея Авраменко MS Word, как правильно оформить договор в программе…

как сделать в word автозаполнение Генерация документов по шаблону

5 лет назад

Cоздание офисных документов формата Word, Excel, RTF, HTML по шаблонам на основе информации, имеющейся в базе данных…

как сделать в word автозаполнение Быстрые переходы по документу Word с помощью гиперссылок

2 лет назад

С помощью гиперссылок документа Word можно выполнять быстрые переходы между его разделами, наподобие, как…

как сделать в word автозаполнение Шаблоны и слияние документов в текстовом редакторе MS Word 2007 (видеоурок 9)

3 лет назад

Шаблоны и слияние документов в текстовом редакторе MS Word 2007 (видеоурок 9) — создание шаблонов документов,…

как сделать в word автозаполнение Word для начинающих. Урок 35: Серия однотипных документов методом слияния

3 лет назад

Как сделать любое количество однотипных документов, у которых меняются только некоторые участки текста?…

как сделать в word автозаполнение Как создать шаблон фирменного бланка в Word. Часть 1: Колонтитулы и шаблоны в Ворде.

1 лет назад

Это один из приемов автоматизации работы с типовыми документами в Word -е. Часть 1 — показано быстрое создание…

как сделать в word автозаполнение Связывание данных таблиц Excel и документов Word

3 лет назад

Решая различные офисные задачи, мы сохраняем данные либо в электронных таблицах Excel, либо в текстовом редак…

как сделать в word автозаполнение Word и Excel Office 2007 29 Excel Ввод данных автозаполнение

5 лет назад

Как создать анкету в Word

2 лет назад

Создавайте собственные бланки анкет, опросников и других вариантов форм. Не повторяйте распространенных…

Создание шаблона на примере трудового договора

6 лет назад

Рассмотрен простейший способ создания шаблона для использования в программе Арфа, на основе заполненного…

Функциональные возможности текстового редактора Word от компании Microsoft настолько широки, что многие пользователи даже не подозревают о большинстве из них и поэтому пытаются выполнять вручную те задачи, которые быстро и качественно решаются автоматически, встроенными в программу алгоритмами. Одним из примеров таких задач является создание содержания в многостраничном документе. Если вы все еще пытаетесь создавать его руками, набирая заголовки, выписывая относящиеся к ним номера страниц, мучаясь с заполнителями и последующим форматированием всего этого, то данная статья поможет избавиться от всего этого, научив вас создавать содержание в Ворде в автоматическом режиме.

Как в Ворде сделать содержание автоматически Содержание создается в Ворде уже после того как будет завершен набор и верстка всего текста. Пошагово весь процесс будет выглядеть следующим образом:

  1. Перед созданием содержания страницы в вашем документе должны быть уже пронумерованы. Это обязательное условие. Если по каким-то причинам вы еще не сделали этого, то сделайте нумерацию сейчас.
  2. Далее необходимо указать текстовому редактору какие части текста в вашем документе будут являться заголовками разделов, подразделов, параграфов и так далее. Выполняется это с помощью назначения соответствующих стилей. Выделите первый заголовок раздела документа и примените к нему стиль Заголовок 1. Аналогичные действия проделайте для остальных заголовков разделов.

    назначение стиля заголовкам

  3. Если в документе присутствуют подразделы, то выделите название каждого из них в тексте и присвойте им стиль Заголовок 2. Для параграфов внутри подразделов назначьте стиль Заголовок 3. Общий смысл данных действий будет заключаться в том, чтобы спускаясь по старшинству заголовков от самого главного и далее ниже, присваивать им стили с возрастанием номеров Заголовок 1, Заголовок 2, Заголовок 3 и так далее.

    назначение стиля подзаголовкам

  4. Вы можете всегда изменить формат отображения заголовков в документе в соответствие с нормативными требованиями, назначив ему другой размер шрифта, иное форматирование, применив другое выделение и так далее. Для этого раскройте список стилей, используемых в документе, нажмите справа от выбранного стиля заголовка на значок ¶a и в появившемся меню нажмите на строку Изменить…. После изменения стиля у вас автоматически поменяются все заголовки соответствующего стиля во всем документе. Вам не нужно будет править каждый заголовок руками, что само по себе очень удобно.

    изменение оформления заголовков в тексте

  5. После назначения соответствующих стилей заголовкам можно приступать к созданию содержания. Для этого в Ворде существует специальная функция, которая называется Оглавление. Перед тем как ее вызвать установите курсор в то место, где у вас в документе будет начинаться содержание. Чтобы вызвать функцию перейдите в главном меню на вкладку Ссылки и далее нажмите на кнопку функции Оглавление.
  6. В открывшемся окне выберите формат оглавления из предлагаемых шаблонных вариантов и нажмите кнопку Ок. В результате данного действия у вас появится содержание вашего документа с автоматически проставленной нумерацией страниц и безупречным форматированием.

    создание оглавления

  7. Если стандартные шаблоны содержания не подходят под требования к вашему документу, то вы можете настроить стиль оформления содержания по собственному желанию. Для этого удалите созданное только что содержание, снова вызовите инструмент Оглавление, но вместо нажатия кнопки Ок нажмите Изменить… Откроется окно настройки стиля, в котором вы, выделяя соответствующий заголовок, и нажав теперь уже в другом окне кнопку Изменить можете выбрать шрифт заголовка, его размер, интервалы, выравнивание и многое другое, что доступно для обычных текстов в редакторе Word. Данные изменения не будут касаться оформление заголовков в тексте, а только определят их вид в содержании.

    настройка оформления оглавления

  8. После того как будет настроен стиль каждого заголовка в содержании вам останется только вернуться в главное окно создания оглавлений и нажать кнопку Ок для завершения работы по созданию автоматического содержания.
    В заключении статьи необходимо сказать об одном важном нюансе в создании содержания в Ворде. Заключается он в том, что Ворд не всегда или не сразу после изменения количества страниц в документе производит автозамену нумерации в уже созданном содержании. Это означает то, что если содержание у вас находится перед основным текстом, а не в его конце, то номера страниц в содержании могут сбиться на то количество страниц, которое будет занимать само оглавление.

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

Именно таким образом создается автоматическое содержание в Ворде в версии текстового редактора Word 2007. В других версиях программы оглавление создается аналогичным образом. Может незначительно только отличаться внешний вид интерфейса.

В MS Word можно выполнять различные задачи, и далеко не всегда работа в этой программе ограничивается банальным набором или редактированием текста. Так, выполняя в Ворде научно-техническую работу, набирая реферат, диплом или курсовую, делая и оформляя доклад, сложно обойтись без того, что принято называть расчетно-пояснительной запиской (РПЗ). Сама же РПЗ обязательно должна включать оглавления (содержание).

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

Такой подход к оформлению содержания в Ворде хорошо работает лишь с документами небольшого объема, коими могут быть лабораторные или типовые расчеты. Если же документ — это курсовая или дипломная работа, научная диссертация и тому подобное, то соответствующий ему РПЗ будет состоять из нескольких десятков основных разделов и еще большего количества подразделов. Следовательно, оформление содержания столь объемного файла вручную займет довольно много времени, параллельно затратив нервы и силы. Благо, сделать содержание в Word можно и автоматически.

Создание автоматического содержания (оглавления) в Ворде

Самое верное решение — начинать создание любого обширного, большого по объему документа именно с создания содержания. Даже в случае, если у вас еще не написано ни одной строчки текста, потратив всего 5 минут на предварительную настройку MS Word, вы сэкономите себе значительно больше времени и нервов в дальнейшем, направив все усилия и старания исключительно на работу.

1. Открыв Ворд, перейдите на вкладку «Ссылки», расположенную на панели инструментов вверху.

2. Кликните на пункт «Оглавление» (первый слева) и создайте «Автособираемое оглавление».

3. Перед вами появится сообщение о том, что элементы оглавления отсутствуют, что, собственно, не удивительно, ведь вы открыли пустой файл.

Примечание: Дальнейшую «разметку» содержания вы можете делать по ходу набора текста (что более удобно) или по завершению работы (займет заметно больше времени).

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

Примечание: Вполне логично, что вы можете создавать не только заголовки меньшего уровня, но и основные. Кликните по месту, где вы хотите его разместить, разверните пункт «Добавить текст» на панели управления и выберите «Уровень 1»

Выберете желаемый уровень заголовка: чем больше цифра, тем «глубже» будет этот заголовок.

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

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

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

По ходу написания вами текста созданное в самом начале «Автособираемое оглавление» будет изменяться. В нем будут отображаться не только создаваемые вами заголовки и подзаголовки, но и номера страниц, на которых они начинаются, уровень заголовка тоже будет отображаться визуально.

Это и есть столь необходимое для каждой объемной работы автосодержание, сделать которое в Ворде очень просто. Именно содержание будет находится в начале вашего документа, как это и требуется для РПЗ.

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

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

Урок: Как конвертировать PDF в Word

На этом все, теперь вы знаете, как создать автоматическое содержание в Ворде. Стоит отметить, что данная инструкция применима ко всем версиям продукта от Майкрософт, то есть, таким образом можно сделать автоматическое оглавление в ворде 2003, 2007, 2010, 2013, 2016 и любых других версиях этого компонента офисного пакета. Теперь вы знаете немного больше и сможете работать более продуктивно.

Мы рады, что смогли помочь Вам в решении проблемы.

Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Да Нет

В предыдущих статьях цикла «Автоматизация заполнения документов» я рассказал о том, как сформировать пользовательский интерфейс приложения, организовать проверку вводимых данных и получить число прописью без использования кода VBA. В этой, заключительной статье речь пойдет о волшебстве — переносе всех необходимых значений из рабочей книги Excel в документ Word. Давайте я покажу Вам то, что должно получиться в итоге:

Описание механизма

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

Итак, обо всем по порядку.

Создание шаблона документа Word

Тут все предельно просто — создаем обычный документ, набираем и форматируем текст, в общем, добиваемся того, чтобы получить необходимую форму. В тех местах, куда необходимо будет подставить значения из Excel нужно создать закладки. Это делается следующим образом:

  • Для удобства поддержки напечатать в нужном месте название закладки. Я еще и заключил названия в угловые скобки, так что получилось, например, вот так: <DocumentDate> для закладки, содержащей дату документа.
  • Выделить все название закладки (в моем случае вместе с угловыми скобками), перейти на вкладку «Вставка» и нажать кнопку «Закладка»:

    Расположение кнопки "Вставить закладку"

    Расположение кнопки «Вставить закладку»

  • В появившемся диалоговом окне задать для закладки имя (у меня оно совпадает с тем, что написано в угловых скобках) и нажать ОК

Таким образом нужно будет создать все закладки, то есть отметить все места, куда будут вставлены данные из Excel. Получившийся файл нужно сохранить как «Шаблон MS Word» с помощью пункта меню «Файл» -> «Сохранить как…».

Подготовка данных Excel

Я решил для удобства поместить все данные, которые необходимо перенести в документ Word, на отдельном рабочем листе с названием Bookmarks — закладки. На этом листе два столбца: в первом содержатся названия закладок (в точности так, как они названы в документе Word), а во втором — соответствующие значения, подлежащие переносу.

Часть этих значений получена напрямую из листа ввода данных, а часть — из вспомогательных таблиц, расположенных на листе Support. В этой статье я не буду разбирать формулы, рассчитывающие нужные значения, если что-то будет непонятно — задавайте вопросы в комментариях.

На этом этапе важно правильно указать все названия закладок — от этого зависит правильность переноса данных.

Процедура переноса

А вот это — самое интересное. Существует два варианта выполнения кода переноса данных:

  • Код выполняется в рабочей книге Excel, данные передаются в Word по одному значению за раз и сразу же размещаются в документе.
  • Код выполняется в отдельном документе Word, все данные передаются из Excel одним пакетом.

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

Вот, что необходимо сделать:

  • Создать шаблон документа Word с поддержкой макросов. В этом шаблоне будет содержаться выполняемый код на VBA.

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

  • В созданный шаблон необходимо поместить программу, написанную на VBA. Для этого необходимо при редактировании шаблона нажать комбинацию клавиш Alt+F11 и ввести в открывшемся окне редактора Visual Basic код программы.
  • В рабочей книге Excel написать код, вызывающий процедуру заполнения из только что созданного шаблона Word.

Текст процедуры я приводить в статье не буду — его можно легко посмотреть в файлеFillDocument.dotm, расположенном в папке Template в архиве с примером.

Как же воспользоваться всем этим для решения именно Вашей задачи?

Понимаю, что на словах это все выглядит очень просто, но что же получается на деле? Я предлагаю Вам просто воспользоваться уже готовым вариантом. Скачайте архив с примером, в рабочей книге Excel нажмите комбинацию клавиш Alt+F11, чтобы открыть редактор Visual Basic и прочитайте все мои комментарии к программе. Для того, чтобы изменить программу под свои нужды Вам понадобится всего лишь изменить значение нескольких констант, они вынесены в самое начало программы. Весь текст программы Вы можете свободно скопировать в свой проект.

Структура архива

В архиве, приложенном к этой статье, содержится несколько файлов.

Основной файл — рабочая книга Excel с названием «Создание подтверждений». В этой рабочей книге 4 рабочих листа, из которых отображаются только два: «Input» — лист ввода данных и «Database» — архив всех введенных документов.

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

Как переработать пример «под себя»?

Я рекомендую придерживаться следующей последовательности действий:

  1. Подготовить шаблон документа Word, который необходимо заполнить. Создать в нем все необходимые закладки и сохранить как «шаблон MS Word».
  2. Скопировать в папку с подготовленным шаблоном файл FillDocument.dotm из архива, приложенного к этой статье. Этот файл отвечает за заполнение закладок шаблона, и в нем ничего менять не нужно.
  3. Подготовить рабочую книгу Excel для ввода данных. Вам решать, будет ли она обладать каким-либо «продвинутым» пользовательским интерфейсом и осуществлять разные хитрые расчеты. Главное, чтобы в ней содержался рабочий лист с таблицей соответствия имени закладки в шаблоне Word и значения, которое нужно подставить.
  4. Вставить в подготовленную рабочую книгу код программы на VBA из файла-примера. Заменить все константы в соответствии с Вашим проектом.
  5. Протестировать правильность работы.
  6. Активно пользоваться!

Вместо заключения

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

Другие статьи из цикла:

  1. Общие требования к приложению
  2. Разработка пользовательского интерфейса
  3. Получение числа прописью.

Скачать файл с архивом приложения

По этой ссылке Вы перейдете на сайт Microsoft SkyDrive, где Вам будет предложено скачать файл Confirm.rar — это и есть архив приложения.

Генерация документов — личный опыт

Время на прочтение
12 мин

Количество просмотров 9.8K

В своих предыдущих статьях я пытался показать отдельные фрагменты Генератора документов. Как стало понятно из обсуждений, отдельные его фрагменты существуют в различных реализациях и обсуждать их не интересно. Действительно, зачем обсуждать отдельные строительные кирпичики, когда не видишь здания целиком. Поэтому в этой статье я попытаюсь показать здание целиком, чтобы не обсуждать его отдельные кирпичики. Я попытаюсь описать свое видение реализации генератора документов, опираясь на личный опыт, полученный в одном из крупнейших банков России. Я шел от практики, реализовал генератор в MS Word и Excel, вот что в результате этого процесса нарисовалось.

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

2. Генератор должен на основе шаблонов автоматически строить UI формы для обеспечения ручного ввода информации, отсутствующей в БД. Таким образом, введя вручную значение такого поля, оно будет подставлено в разные места документа(тов), правильно сопряжено с другими словами, иметь правильный падеж и т.д. Значения, введенные вручную, должны сохраняться в БД и в случае необходимости копироваться в основную БД, обеспечивая принцип одного ввода. Часть полей должна быть просто показана на форме без возможности редактирования, только для визуального контроля.

Часть полей должна быть скрыта: — это вычисляемые поля и поля, которые на определенной стадии подготовки документадоговора заполняются прочерками. Значения полей с прочерками определяются позднее в процессе согласования условий, например, договора. Поля располагаются на UI форме в определенном порядке на определенных закладках и имеют соответствующий тип элемента (control) и маску для ввода. При выдаче команды на Генерацию значения полей верифицируются и в случае обнаружение несоответствий пользователь получает сообщение об ошибке или предупреждение.

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

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

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

3. Количество шаблонов должно стремиться к минимуму, но в то же самое время сами шаблоны не должны быть огромными. Сколько должно быть шаблонов и каковы их размеры должны решать сами разработчики шаблонов, т.е. бизнес. И точных правил, однозначно определяющих размеры шаблонов, не существует. Но рекомендации могут быть. Одна из них — чем больше по размеру шаблон, тем больше вычислительных ресурсов потребуется Генератору для генерации документов на его основе. Поэтому не стоит в один шаблон упаковывать весь мир.

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

Когда я увидел впервые такие огромные шаблоны, я, при всем доверии к компетенции бизнеса, засомневался в правильности их выбора. Но чтобы указать бизнесу на его ошибки, нужно разобраться с тем, что неправильно было сделано и предложить лучший вариант, а это требует погружения в практику бизнеса, что, в свою очередь, потребует от IT-шника компетенций, не относящихся к его текущим умениям и навыкам. А посему, со своим уставом не надо ходить в чужой монастырь. Надо доверять людям, 100 страниц, значит 100.

Понятно, что разработчики шаблонов не оперируют понятиями производительности и не считают затрат вычислительных русурсов. Их интересует результат. Тем не менее они заинтересованы в том, чтобы генерация документов осуществлялась максимально быстро.

Поэтому разметка шаблонов должна позволять разработчикам шаблонов управлять скоростью генерации, и разработчики шаблонов, безусловно, такими возможностями пользуются. Идея сокращения размера шаблона заключается в том, что шаблон может быть большим, но состоять из кусочков, котрые подгружаются в память по мере надобности. Т.е. в процессе компиляции шаблона он по указаним в разметке разбивается компилятором на кусочки, которые в момент генерации документа будут подгружены в память в зависимости от того, какой документ из этих кусочков собирается. Т.е. с точки зрения разработчика шаблона, шаблон может быть большим, но с точки зрения Генератора, шаблон — это маленькая базовая часть плюс конкретные кусочки, подставляемые на свое изначальное место в случае надобности. Такой способ работы с шаблонами приводит к сокращению времени генерации и, соответственно, сокращению потребляемых вычислительных ресурсов. Ответственность за скорость генерации лежит при таком подходе на разработчике шаблона (а он работник бизнеса).

4. Генератор должен уметь включать в себя статьи, параграфы, части других документов, отсутствующие изначально в шаблоне. В шаблоне только отмечается место, куда такая информация может быть вставлена. Т.е. генератор должен уметь синтезировать документ из отдельных параграфов и фрагментов других документов. Здесь основная сложность заключается в сопряжении разнородного внешнего текстового материала с основным документом. Например, в библиотеке могут храниться отдельные пункты договора и, в зависимости от условий договора, эти пункты должны вставляться в основной документ. При вставке надо выровнять шрифт и отступы, определить номера пунктов договора, вычислить ссылки на другие пункты как текущего документа, так и на пункты другого документа (например, генерального договора) и т.п.

Все это требует с одной стороны определенной стандартизации ведения отдельных библиотечных пунктов, а с другой стороны, создателю шаблонов необходимо иметь под рукой набор элементов разметки, которые позволяют осуществить тонкую ручную настройку нестандартных фрагментов текста (мало ли из каких источников могут поступать документы (тексты, таблицы, графики, которые надо вставить в генерируемый документ). Библиотеку пунктов ведет и поддерживает бизнес. Изменение текста пункта приводит к изменению текста всех документов, которые включают в себя данный пункт. В процессе практики выясняется, какие части одного шаблона всегда совпадают с частями другого. В таких случаях эти части можно вынести из шаблона в библиотеку (или файловую папку, где лежат общие части для различных документов) и в случае изменений (а они не редки сегодня) редактировать не один и тот же текст в различных шаблонах, а править его в одном месте. Для быстрого нахождения нужного фрагмента он должен быть снабжен поисковым образом.

5. Атрибуты отображения текста в готовом документе должны быть достаточными, чтобы соответствовать потребностям бизнеса. Это толщина, наклон, подчеркивание и вычеркивание текста, его подсвечивание (highlight) определенным набором цветов (каждый цвет подсветки может нести смысловую нагрузку). Очень важна поддержка возможности отображения исправлений, когда в документе можно видеть первоначальный и исправленный вариант текста. Пользователь документа должен иметь возможность переключаться из режима отображения конечного вида документа в режим отображения правок (MS Word). Генератор должен уметь автоматически создавать оглавление документа, а также создавать сноски.

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

6. Генератор должен уметь возвращать результат в вызывающую программу или сохранять готвый документ в файловую папку. Генератор реализуется в виде нескольких методов WEB-service, одним из которых является генерация документа или пачки документов по шаблону. Вызывать WEB-Service можно из любой программы или СУБД. Если результат сохраняется в файл, то очень важно иметь гибкую, настраиваемую по требованиям бизнеса, подсистему, которая определяет спецификацию самой папки и имя файла документа, которые могут быть интеллектуальными и включать в себя дату, имя клиента и т.п. Обычная практика работы с документами клиента приводит к созданию папки, где лежат все документы, относящиеся к сделке, в том числе не подготовленные генератором, и пользователям удобно использовать файловую «деревянную» структуру для работы с документами.

При генерации пачки документов по одному шаблону, если генерируемые документы кроме значения полей ничем не отличаются, можно значительно скратить время генерации, т.к. все подготовительные операции с шаблоном выполняются вначале только один раз, а затем по этой промежуточной форме шаблона производится генерация пачки документов. Например, набор документов по поручительствам может иметь одни и те же условия соглашения для поручителей, поэтому все документы должны отличаться только данными самих поручителей, их ФИО, адреса, должности и прочее. В этом случае выгодно использовать генерацию пачки документов по одному шаблону, и получить выигрыш во времени генерации за счет того, что генератор использует механизм использования промежуточной формы шаблона. Такая функциональность также должна поддерживаться генератором.

7. Представим себе документ, например, анкету, в котором есть раздел, включающий сведения о родителях. А у клиента нет родителей, и никогда не было. В одном месте анкеты он поставит галку, что родителей у него нет, а в другом месте сведения о родителях останутся незаполненными. После распечатки такой анкеты будет использована лишняя бумага. Действительно, если у клиента родителей нет, то и сведений о родителях в документе быть не должно. И таких моментов, вызывающих когнитивный диссонанс, в документах зачастую пруд пруди. Напрасно тратится энергия и труд, затраченные на производство бумаги, напрасно тратится время жизни человека, который просматривает такую анкету с пустыми полями. Этого быть не должно. Это могло быть раньше, в докомпьютерную эпоху, но сейчас, при наличии генератора документов такое расточительство должно быть прекращено. И все что нужно сделать IT-шникам, это всего-навсего получить заранее ответ на вопрос, есть ли у клиента родители, и в зависимости от ответа, запрашивать данные о них или исключить полностью из документа раздел сведений о них. Т.е. перед собственно заполнением полей документа должен быть пройден вопросник, ответы на вопросы которого являются аргументами как для функции получения списка полей, необходимых для заполнения в документе, так и аргументами функции генерации документа по конкретному шаблону.

Ответы на вопросы «высекают» из полиморфного шаблона только те части, которые соответствуют ответам, точно так же, как Микельанжело высекал из мрамора свои прекрасные творения. Составление вопросника — это отдельная тема, которую подробно в данной статье рассматривать я не буду, чтобы не «зашумлять» изложение темы о генераторе документов. Скажу только, что по разметке шаблона автоматически можно получить вопросник к нему, в случае, если тэги разметки однозначно определяют ответ на вопрос, а значит и сам вопрос. Т.е. если тэг ответа на вопрос (это уникальный код ответа) принадлежит только одному вопросу, то составление вопросника происходит автоматически, а порядок следования вопросов можно позаимствовать из уже существующих вопросников, что также не является сложной операцией. Вопросы и ответы к ним могут быть как обычные, составленные в дизайн тайме, так и динамические, получаемые из данных в СУБД. Вопросы могут иметь только один ответ или быть многозначными. Ответы на вопросы могут влиять не только на состав полей, появляющихся в UI форме для заполнения, не только на окончательную форму документа, но и на последующие вопросы. Например, если у вас были родители, то можно задать вопрос, вляются они резидентами или нет. Но если их не было и вы из туманности Андромеды, то вопрос про резиденство бессмыслен. Итак, по крайней мере двумя понятиями сотрудник, занимающийся разметкой, должен овладеть, это расставить в шаблоне поля и тэги ответов на вопросы. Т.к. обычные люди в голове спокойно удерживают 5-6 понятий на одну тему, то задача разметки пока что не видится мне слишком сложной. Овладевший двумя основными понятиями разметки сотрудник может сделать примерно то же, что программист, написавший на новом для себя языке программирования программу «Hello world». Этого, конечно, недостаточно, но это уже кое-что.

8. Не будем лукавить. «Зачем так много слов, так много треска». Работник бэкофиса, если он не слишком ленив, может обеспечить себя шаблонами сам. И зачем ему генератор, когда у него есть его собственные шаблоны на все типовые случаи жизни. Если что-то меняется в жизни, он создаст себе новый шаблон и с помощью команды Replace может быстро сделать нужный документ, например, типовой договор. Но вот ситуация, которая при таком подходе не работает. Т.е. она работает, конечно, но кое-как. Допустим, составлен первичный вариант договора поручительства и передан клиенту, а затем юристам на согласование. В результате правок через некоторое время на основе этого первичного документа появляется новый документ, в котором многие пункты первоначального варианта исправлены, дополнены и все такое. Теперь на основе этого нового варианта поручительства надо составить 10 или больше документов поручительств, где должны быть подставлены ФИО, адреса, должности и прочие реквизиты поручителей, а остальное содержимое документа должно быть таким, как в новом варианте поручительства.

Здесь возникает ситуация, когда у работника бэкофиса шаблона нет, т.к. на все случаи жизни шаблонами не запасешься и все варианты поручительств не переберешь. Вот случай, когда генератор действительно может проявить свое преимущество по сравнению с обычным ручным способом подготовки документов. Для этого генератор должен сгенерировать такой первичный договор поручительства, который после внесения правок клиентом и юристами может сам выступить в роли шаблона. Тогда подготовка 10 или более документов поручительств для разных поручителей займет несколько секунд работы компьютера, не будет содержать ошибок, опечаток и всего того, что может сделать любой человек в любой момент. Т.е. не только экономится время подготовки документов, но повышается их качество, т.к. компьютер не ошибается. Чтобы получить такую функциональность генератор должен в момент генерации первичного документа создавать налету скрытую разметку, которая существует в виде закладок и не видна людям, работающим с текстом документа. Каждая закладка однозначно соотнесена с именем поля, а значит, что в место документа, отмеченное закладкой, можно подставлять любые значения, но только способ подстановки будет отличаться от первичного. К сожалению, если говорить про MS Word, не всегда закладки сохраняются в документе после внесения правок, это зависит от способа, каким вместо одного текста был внесен другой. Чтобы устранить последствия исчезновения закладок, приходится делать дополнительные закладки, по которым можно вычислить место исчезнувших закладок. Такой механизм вполне работоспособен, жаль, что Microsoft ничего не предпринимает для стандартного решения этой проблемы. Ну может быть, когда-нибудь, когда что-то сдуется или изменится климат, данная проблема будет решена.

9. Шаблоны, содержашие в себе скрытую разметку, по сравнению с первоначальными шаблонами, являются ригидными. Но степенью ригидности, к счастью, можно управлять. Из ригидного шаблона можно получить гибридный (вот так рождаются каламбуры), для этого в части ригидного шаблона нужно подставить части из первоначального шаблона. Обычно в документе есть такие места (гипервариабельные), которые позволяют вернуть на место ту разметку, которая была в первоначальном шаблоне до генерации документа. Естественно, такие места надо разметить в шаблоне. В результате, даже после правок клиентом и юристами, шаблон, содержащий только закладки, остается достаточно гибким. К тем частям, которые вернулись из первоначального (или любого другого) шаблона, налету можно получить вопросник, если разметка с ответами на вопросы будет обнаружена в вернувшихся частях шаблона. Гибридный шаблон обеспечивает ту степень гибкости, которая во многих случаях оказывается соответствующей требованиям бизнеса.

Итак, я рассмотрел некоторые отдельные «кирпичики», которые нужно иметь, чтобы построить «здание» под названием «Генератор документов». Я старался акцентировать ваше внимание на том, чтобы шаблоны создавались самим бизнесом и участие IT было минимальным. Надеюсь, разговор о гибридных шаблонах тоже мог быть полезным.

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

Настраиваем подстановку текста из поля в документСтолкнулся с тем, что все инструкции связаны со сложной автоматизацией с использованием кучи каких-то файлов, экселя и его таблиц, связей документов и так далее. Всё можно сделать гораздо проще!

Автозаполнение документа или договора Word Без Excel – как это сделать?

Сколько же я намучался, забивая запросы типа “как сделать автозаполнение word без экселя” или “заполнение документа значением поля” или “word значение поля в текст автоматически“. На самом деле всё оказалось не так сложно, как я изначально предполагал.

пример автоматическое заполнение Word из полей
Да, можно делать очень полезные связки документов, когда мы заполняем эксель, а потом у нас шаблон ворда из него берет информацию. Но объяснить какому-нибудь муниципальному сотруднику как это делать – задача практически невозможная.

Так вот, всё что нам потребуется – это Microsoft Word Документ. В нем мы создадим поля, настроим страницы и всё будет автоматически наполняться.

Инструкция как сделать автозаполнение документа Word из полей

Для примера возьму документ договора, где есть заказчик, исполнитель, дата документа и сумма договора, которые мы хотим подставлять из полей.

Пример документа с автозаполнением из полей делаю в microsoft office word 2019 (автоматизация заполнения документов word без эксель).

  1. Формат документа DOCM.
    Создаем новый документ и сохраняем его в формате docm (Документ Word с поддержкой макросов).
  2. Вкладка “Разработчик”.
    Файл – Параметры – Настроить ленту. В выпадающем списке выбираем “Основные команды”, затем выделяем ниже строчку “Разработчик”, и по середине жмем “Добавить”. Справа появляется “разработчик” с плюсиком, жмем Ок, и видим, что теперь вверху есть вкладка “Разработчик”.
    Вкладка "Разработчик". Файл - Параметры - Настроить ленту
  3. Делаем страницу с полями для ввода данных документа (договора).
    Кликаю в начале договора, жму вставка – разрыв страницы, и в итоге у меня пустая первая страница.
    На ней создаю табличку, это не обязательно, и начинаю там создавать поля. Делаем страницу с полями для ввода данных Делаем страницу с полями для ввода данных
  4. Создаём поля для ввода текста для автозаполнения документа.
    Кликаем в любое место документа, где нам нужно поле.
    Переходим во вкладку Разработчик. Вставляем не просто текстовое поле, а именно СТАРОЕ текстовое поле.
    То есть выбираем там уже иконку “Инструменты из предыдущих версий”, затем “Поле (элемент управления формы)”.
    И вставляем куда нам нужно.
    "Инструменты из предыдущих версий", затем "Поле (элемент управления формы)"
  5. Настраиваем поля Word для автозаполнения.
    Когда поле есть на странице, жмем по нему правой кнопкой и во всплывающем меню выбираем “Свойства” (поля).
    Настраиваем поля Word для автозаполнения
    Настраиваем обязательно следующие параметры поля:
    — Текст по-умолчанию: тут свой текст.
    — Закладка: на английском, уникальный идентификатор поля. Придумайте что-нибудь понятное, это нам пригодится далее.
    — Ставим галочки (чек-боксы) “разрешить изменения” и “вычислить при выходе”.
    В данном примере я создал текстовое поле, в котором будет Дата договора (по сути это любой текст). Мне главное, чтобы я в одном месте ввел данные, а в других местах документа текст из поля автоматически заполнился. И в данном случае это будет то, что я назвал датой.
  6. Настраиваем подстановку текста из поля в документ.
    ЕСТЬ ДВА СПОСОБА: ВРУЧНУЮ СОВСЕМ, И ЧЕРЕЗ СВОЙСТВА ПОЛЕЙ.
    Разберем первый способ: вставка текста из поля в документ через закладку ctrl+f9.
    Для этого выбираем место, где у нас должно подставиться значение поля. Мы помним, что в нашем случае уникальный идентификатор (название закладки) в примере: POLEDATE.
    В этом месте кликаем мышкой левой кнопкой (просто чтобы там курсор мигал), затем на клавиатуре нажимаем сочетание клавиш Ctrl+F9 (контрол плюс эф девять).
    Видим, что появились фигурные скобки с серым фоном, и мы можем внутри печатать.
    Настраиваем подстановку текста из поля в документ
    Печатаем внутри следующее: REF POLEDATE.
    Поясняю: внутри фигурных скобочек, должно быть три буквы заглавных REF, затем пробел, затем то как мы назвали закладку (идентификатор поля). В нашем случае это POLEDATE, а может быть что угодно.
    Больше ничего жать не нужно, можно убрать оттуда курсор.
    Вот как это выглядит в итоге:
    вставка текста из поля в документ через закладку ctrl+f9
    Второй способ: вставка значения поля из другого поля автоматически через закладку REF.
    Это практически тоже самое, только не нужно нажимать ничего на клавиатуре. По мне так, дольше, но вдруг вам там понятнее.
    Так же создаем поле, в этом примере возьму сумму договора. При создании поля (см. п. 5) я ввел название закладки поля (уникальный идентификатор) pole_stoimost.
    вставка значения поля из другого поля автоматически через закладку REF
    Только теперь, когда мы нажали в место документа, куда хотим подставить данные автоматически (курсор там мигает), мы вставляем поле.
    Выбираем вкладку “Вставка”, затем “Экспресс-блоки”, затем “Поле” (как на скриншоте ниже):
    "Вставка", затем "Экспресс-блоки", затем "Поле"
    Это поле нужно настроить так, чтобы в него подставлялось значение другого поля автоматически.
    При вставке поля из экспресс-блоков, или когда вы потом можете нажать правой кнопкой Свойства поля, настраиваем так.
    Слева выбираем тип поля “Ref”, и дальше выбираем название нашей закладки, т.е. идентификатор поля, откуда надо подставить текст. В нашем случае это pole_stoimost:
    Слева выбираем тип поля "Ref", и дальше выбираем название нашей закладки
    (вот кстати выше видно на скриншоте еще ошибку “Ошибка! Источник ссылки не найден.” – это происходит, когда вы ввели REF Несуществующая закладка, например. То есть не найдено поле (закладка) с тем идентификатором уникальным. И надо просто проверить свойства полей.).
    Короче, так или иначе, подытожу:
    — Создали поле через Разработчика.
    — У него в свойствах прописали уникальный идентификатор (название закладки).
    — Вставили через CTRL+F9 или экспресс блоки – поле (место) куда будет подстваляться текст из первого поля, указав такой же идентификатор.
  7. Автозаполнения документа значением из полей через F9 или печать документа.
    Ну.. тут уже все понятно должно быть – насоздавали полей сколько нужно, поставляли в места куда нужно.
    По-умолчанию, Word будет автозаполнять документ автоматически, если весь документ выделить (ctrl+a например) и нажать кнопку F9.
    Места с REF и полями преобразуются в то, что есть в оригинальном поле-закладке.
    Но есть трудность – сложно объяснить людям как это работает, что выделять и как обновлять эти поля.
    Я выбрал способ попроще – чтобы поля автоматически обновлялись при печати (печатать почти все умеют как).
    Лезем в настройки (файл – параметры), там выбираем “Экран” и отмечаем галочку “Обновлять поля перед печатью”.
    чтобы поля автоматически обновлялись при печати
    Теперь, каждый раз когда через Файл – Печать или Ctrl+P будет печататься документ – поля будут обновляться (текст автоматически подставляться), т.е. тоже самое что через выделение документа и нажатие F9.
  8. Наводим красоту: запрет редактирования, номера страниц.
    Ну и еще два момента. Во-первых, документы пронумерованы обычно. И основная проблема – что страница с полями тоже печатается, а в официальном документе её быть не должно.
    Соответственно, способа убрать страницу word из печати автоматически я не нашел. Поэтому, выкрутился по-другому.
    Через настройки колонтитула (несколько кликов по нижней части документа (или где там у вас номера страниц)), переходим в свойства, номера страниц, и там выбираем начать с “0″, с нуля короче.
    номера страниц, и там выбираем начать с "0", с нуля короче
    Таким образом, страница с полями становится как бы нулевой, и договор печатается как надо, первая страница договора остается первой.
    И второе, защита от редактирования, чтобы только вводили данные в поля.
    защита от редактирования, чтобы только вводили данные в поля
    Сделал просто – Рецензирование – Ограничить редактирование – Да, включить защиту, ну и пароль 1.
    Отключается так же, только не все видят – там внизу кнопка становится “отключить защиту”.

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

пример автоматическое заполнение Word из полей

Скачать пример автоматическое заполнение Word из полей: Автозаполнение документов Word Без Excel через текстовые поля docm (пароль на отключение защиты: 1 (просто единичка)).

P.S. Почему формат docm? На самом деле потому, что если формат doc или docx – то не работает вкладка “разработчик” где поля (ну не вставляются они). При этом – само автозаполнение прекрасно работает. Совет – делайте всё в docm, а итоговый результат, уже с защитой от редактирования – сохраните в обычный формат doc/docx и отдавайте, всё там прекрасно работает и печатается.

P.P.S. Заказать можно тут: https://vk.com/autoworddocs! обязательно оставьте отзыв!

 

Мои контакты →

© 2006 — 2023, Александр Сергеев

Описание презентации по отдельным слайдам:

  • Microsoft Office Word 2010. Автоматическая генерация оглавления.Составитель:...

    1 слайд

    Microsoft Office Word 2010. Автоматическая генерация оглавления.

    Составитель: Помякшева Н.Н.

  • Алгоритм действий:1. Напечатать текст (главы, подзаголовки и т.д.)2. Открыть...

    2 слайд

    Алгоритм действий:
    1. Напечатать текст (главы, подзаголовки и т.д.)
    2. Открыть окно стилей «Главная» → «Стили».  
    Справа появится дополнительное окно стилей.

  • Алгоритм действий:3. Поставить курсор в названии главы → «Заголовок 1», в наз...

    3 слайд

    Алгоритм действий:
    3. Поставить курсор в названии главы → «Заголовок 1», в названии параграфа → «Заголовок 2».

     Существуют 9 стилей заголовков, но в таблице они появляются по мере их использования.

  • Алгоритм действий:4. Наведя на «Заголовок 1» справа появится стрелка → при на...

    4 слайд

    Алгоритм действий:
    4. Наведя на «Заголовок 1» справа появится стрелка → при нажатии, появится дополнительное окно, с помощью которого можно отредактировать стиль → «Изменить»

  • Алгоритм действий:5. В появившемся окне изменяем шрифт, размер текста и т.п....

    5 слайд

    Алгоритм действий:
    5. В появившемся окне изменяем шрифт, размер текста и т.п. по предъявляемым требованиям → ОК.

  • Алгоритм действий:6. Для установки автоматической нумерации подзаголовков: «Г...

    6 слайд

    Алгоритм действий:
    6. Для установки автоматической нумерации подзаголовков: «Главная» → «Абзац» → «Многоуровневый список»
    7. В библиотеке списков выбрать 6 — ой шаблон.

  • Алгоритм действий:8. Для установки точки в номере подпункта (1., 1.1. и т.д.)...

    7 слайд

    Алгоритм действий:
    8. Для установки точки в номере подпункта (1., 1.1. и т.д.):
    «Главная» → «Многоуровневый список»
    → «Определить новый многоуровневый список»

  • Алгоритм действий:9. «Выбрать уровень для изменения» → В ячейке «Формат номер...

    8 слайд

    Алгоритм действий:
    9. «Выбрать уровень для изменения» → В ячейке «Формат номера» в нужных местах точку → перейти к следующему уровню и т.д. → ОК.

  • Алгоритм действий:10. Поставить курсор в месте где нужно добавить оглавление...

    9 слайд

    Алгоритм действий:
    10. Поставить курсор в месте где нужно добавить оглавление → «Ссылки» → «Оглавление» → выбрать внизу «Оглавление»

  • Алгоритм действий:11. В появившемся окне выделить необходимое («Показать номе...

    10 слайд

    Алгоритм действий:
    11. В появившемся окне выделить необходимое («Показать номер страниц», «Номер страниц по правому краю», выбрать «Заполнитель») → ОК.

  • СПАСИБО ЗА ВНИМАНИЕ!

    11 слайд

    СПАСИБО ЗА ВНИМАНИЕ!

Краткое описание документа:

Презентация создана к уроку по дисциплине «Информационные технологии» на тему «Microsoft Office Word 2010. Автоматическая генерация оглавления.». В данной презентации изложен порядок действий при создании автоматической генерации оглавления.

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

Автоматическая генерация word файла

Наименовение документа:

Формирование документа:

                                        0 %
  • Начало автоматической генерации документа

8409840image001Продолжаем, начатую ранее тему работы с формами в Word. В предыдущих статьях мы смотрели на формы только с точки зрения “продвинутого пользователя”, т.е. мы создавали документы, удобные для ручного заполнения. Сегодня же я хочу предложить расширить эту задачу и попробовать использовать механизм Content controls для генерации документов.

Прежде, чем мы приступим к нашей непосредственной задаче, хочу сказать пару слов по поводу того, как хранятся в документах Word данные для сontent controls (то как они привязываются к содержимому документа я сознательно пока опущу, но надеюсь вернуться к этому как-нибудь в следующих статьях).

Как мы уже видели ранее (Open Packaging Conventions #2. Собираем MS Word документ руками) вся основная часть документа хранится в Main Document Part. Все остальные компоненты: картинки, данные данные библиографии, … и конечно же данные для content controls привязываются к нему.

Приблизительно как показано на рисунке:

image

Каждый компонент item1.xml, item2.xml и т.д. (в файлах, сформированных Word они называются так и лежат обычно в папке /customXml) хранит данные по каждому подключенному в документ источнику данных. Мы даже это наблюдали ранее, когда только осваивали создание форм в Word в статье Таблицы в формах Word 2013!

Закономерный вопрос – а что такое itemProps1.xml и аналогичные компоненты? В этих компонентах хранятся описания источников данных. Скорее всего, по задумке разработчиков помимо встроенных в документ xml-ек, предполагалось использовать и другие, но пока реализован только этот способ.

Чем полезны нам itemPropsX.xml? Тем, что в них перечислены xml-схемы (их targetNamespace), которые используются в родительском itemX.xml. Это значит, что если мы подключили в документ не одну custom xml, то чтобы найти нужную, нам нужно пробежаться по itemPropsX.xml компонентам и найти нужную схему, а значит и нужный itemX.xml.

Теперь еще один момент. Мы не будем вручную анализировать связи между компонентами и искать нужные, используя только базовый Packaging API! Вместо этого мы воспользуемся Open XML SDK (его сборки доступны через NuGet). Конечно, ранее мы не словом не говорили про этот API, но для нашей задачи от него требуется минимум и весь код будет достаточно прозрачен.

Ну что ж, основное введение сделано, можно приступать к примеру.

По сложившейся традиции возьмем все тот же “Отчет о совещании”, который мы рисовали в статье Таблицы в формах Word 2013. Напомню, что вот так выглядел шаблон документа:

image

А вот так, XML к которому привязывались поля документа

<?xml version="1.0" encoding="utf-8"?>
<meetingNotes xmlns="urn:MeetingNotes" subject="" date="" secretary="">
    <participants>
        <participant name=""/>
    </participants>
    <decisions>
        <decision problem="" solution="" responsible="" controlDate=""/>
    </decisions>
</meetingNotes>

Шаг 1. Создание модели данных

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

Поэтому модель мы объявим в виде структуры С#-классов:

[XmlRoot("meetingNotes", Namespace = "urn:MeetingNotes")]
public class MeetingNotes
{
    public MeetingNotes()
    {
        Participants = new List<Participant>();
        Decisions = new List<Decision>();
    }
 
    [XmlAttribute("subject")]
    public string Subject { get; set; }
 
    [XmlAttribute("date")]
    public DateTime Date { get; set; }
 
    [XmlAttribute("secretary")]
    public string Secretary { get; set; }
 
    [XmlArray("participants")]
    public List<Participant> Participants { get; set; }
 
    [XmlArray("decisions")]
    public List<Decision> Decisions { get; set; }
}
 
[XmlType("decision")]
public class Decision
{
    [XmlAttribute("problem")]
    public string Problem { get; set; }
 
    [XmlAttribute("solution")]
    public string Solution { get; set; }
 
    [XmlAttribute("responsible")]
    public string Responsible { get; set; }
 
    [XmlAttribute("controlDate")]
    public DateTime ControlDate { get; set; }
}
 
[XmlType("participant")]
public class Participant
{
    [XmlAttribute("name")]
     public string Name { get; set; }
}

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

Шаг 2. Сериализация приведенной выше модели в XML

Задача, в принципе, тривиальная. Что называется “берем наш любимый XmlSerializer и вперед”, если бы не одно но

К сожалению, в текущей версии Office, по всей видимости, присутствует баг, который заключается в следующем: если в custom xml перед объявлением основного namespace (того, из которого Word должен брать элементы для отображения), объявить еще какой-нибудь, то повторяющиеся Content controls начинают отображаться не верно (показывается только столько элементов, сколько было в самом шаблоне – т.е. repeating section не работает).

Т.е. вот такой xml работает:

<?xml version="1.0" encoding="utf-8"?>
<test xmlns="urn:Test" attr1="1" attr2="2">
    <repeatedTag attr="1" />
    <repeatedTag attr="2" />
    <repeatedTag attr="3" />
</test>

и вот такой тоже:

<?xml version="1.0" encoding="utf-8"?>
<test xmlns="urn:Test" attr1="1" attr2="2" xmlns:t="urn:TTT">
    <repeatedTag attr="1" />
    <repeatedTag attr="2" />
    <repeatedTag attr="3" />
</test>

а вот такой, уже нет:

<?xml version="1.0" encoding="utf-8"?>
<test xmlns:t="urn:TTT" xmlns="urn:Test" attr1="1" attr2="2">
    <repeatedTag attr="1" />
    <repeatedTag attr="2" />
    <repeatedTag attr="3" />
</test>

я пробовал отправить баг в поддержку Microsoft на Connect, но у меня почему-то закрыт доступ для отправки багов по Office. А обсуждение на форуме MSDN тоже не помогло.

В общем, нужный обходной маневр. Если бы мы формировали XML руками, проблем бы не возникло – мы сделали бы все сами. Однако в данном случае очень хочется использовать стандартный XmlSerializer, который по-умолчанию добавляет несколько своих namespace в выходной XML, даже если эти namespace не используются.

Мы сделаем полное подавление вывода собственных namespace в XmlSerializer. Правда, этот подход сработает, только если они ему и правда будут не нужны (в противном случае они все равно будут добавлены и как раз ДО нашего Печальная рожица).

Собственно, весь код (при условии, что переменная meetingNotes содержит ранее заполненный объект типа MeetingNotes):

var serializer = new XmlSerializer(typeof(MeetingNotes));
var serializedDataStream = new MemoryStream();

var namespaces = new XmlSerializerNamespaces();
namespaces.Add(“”, “”);

serializer.Serialize(serializedDataStream, meetingNotes, namespaces);
serializedDataStream.Seek(0, SeekOrigin.Begin);


Шаг 3. Заносим полученную XML в Word-документ.

Тут мы поступаем следующим образом:

  • копируем шаблон и открываем копию
  • находим в ней нужный custom xml (ищем по namespace “urn:MeetingNotes”)
  • замещаем содержимое компонента, на нашу XML
File.Copy(templateName, resultDocumentName, true);
 
using (var document = WordprocessingDocument.Open(resultDocumentName, true))
{
    var xmlpart = document.MainDocumentPart.CustomXmlParts
        .Single(xmlPart =>
            xmlPart.CustomXmlPropertiesPart.DataStoreItem.SchemaReferences.OfType<SchemaReference>()
            .Any(sr => sr.Uri.Value == "urn:MeetingNotes"));
 
    xmlpart.FeedData(serializedDataStream);
}

Все! У нас готовый документ-отчет по совещанию. Причем, мы реализовали весьма удобный для повторного использования подход (источником данных для данного отчета может служить все, что угодно).

Как поиграться?

Пример, который приведен в статье, можно как и ранее найти на GitHub.

Если же хочется попробовать пример в деле (и не хочется разбираться в коде), можно посмотреть Web-реализацию примера генерации отчета, а исходный код этого примера найдется там же на Codeplex, но в соседней ветке.

image

При работе с документами Word иногда возникает необходимость быстро заполнить таблицу или весь файл произвольным текстом, чтобы получить представление о внешнем виде готового документа. Взять заполняющий текст можно с любого сайта или воспользоваться специальными онлайновыми генераторами текста вроде Lorem Ipsum, но, чтобы вы знали, такие случайные тексты умеет генерировать и сам Microsoft Word. Для этого в текстовом редакторе имеется специальная функция, которая называется Rand.

Применяется она для генерирования несвязанного текста.

Чтобы заполнить с ее помощью документ, просто введите =Rand().

Rand()

При этом в документе будет автоматически сгенерирован текст из пяти абзацев по три предложения в каждом, состоящий в общей сложности из 1500 символов с пробелами. Если нужно получить больший или меньший объем текста, используйте формулу =Rand(x,y), в которой x — это количество абзацев, а y — предложений в каждом из созданных абзацев.

Как вариант, для создания случайного текста можно воспользоваться функцией Rand с ключом, добавив через точку слово old, вот так: =rand.old().

Rand.old()

В результате вы получите текст известный текст «Съешь ещё этих мягких французских булок, да выпей чаю», состоящий из трех абзацев по три предложения в каждом.

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

Lorem()

Для этого вводим в документ =Lorem() и жмем Enter. Как и в случае с Rand, в скобках Lorem можно использовать аргументы x и y, задающие количество абзацев и предложений.

Загрузка…

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Автоматическая высота ячеек excel
  • Автоматическая высота строк в excel по содержимому
  • Автоматическая вставка ячеек excel
  • Автоматическая вставка текста в excel
  • Автоматическая вставка текста word

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии