Как экспортировать форму в ms word

Обновлено: 08.07.2024

АВТОМАТИЗАЦИЯ ЗАПОЛНЕНИЯ ДОКУМЕНТОВ, ЧАСТЬ 4: ПЕРЕНОС ДАННЫХ В WORD

В предыдущих статьях цикла "Автоматизация заполнения документов" я рассказал о том, как сформировать пользовательский интерфейс приложения, организовать проверку вводимых данных и получить число прописью без использования кода 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, сохранить который поверх существующего шаблона просто так не получится. Сам шаблон при этом остается неизменным.

Текст процедуры я приводить в статье не буду - его можно легко посмотреть в файле 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. Активно пользоваться!

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

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

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

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

0 коммент.:

Реклама

Архив блога

Ярлыки

Recent

Popular Posts

В предыдущих статьях цикла "Автоматизация заполнения документов" я рассказал о том, как сформировать пользовательский интерфе.

Хотите свободно говорить на английском? Есть вещи, которые нужно выучить назубок! Основные неправильные глаголы английского языка: .

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

В этой статье

Основы экспорта данных в Word

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

Начало операции. Для экспорта данных из Access в Word необходимо открыть Access. В Word нет средства импорта данных из базы данных Access. Вы также можете сохранить базу данных или таблицу Access в виде документа Word с помощью команды Сохранить как в Access.

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

Результат операции. Мастер экспорта в RTF-файл всегда экспортирует форматированные данные. Это означает, что экспортируются только видимые в объекте или представлении поля и записи, а также параметры формата отображения. Столбцы и записи, скрытые из-за применения фильтра, не экспортируются. Макет отчета при экспорте также сохраняется.

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

Экспорт данных в Word

Процесс экспорта данных в документ Word включает следующие основные этапы:

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

Запуск мастера экспорта в RTF-файл.

Сохранение параметров в виде спецификации экспорта для последующего использования (необязательно).

В следующих разделах описано, как выполнить каждую из этих задач.

Подготовка к экспорту

Откройте исходную базу данных Access.

На панели навигации выберите объект с данными, которые вы хотите экспортировать.

Экспортировать можно таблицу, запрос, форму или отчет.

Устраните все ошибки, прежде чем экспортировать данные в Word. В противном случае значения будут заменены значениями NULL.

Если конечный документ Word существует и открыт, закройте его перед выполнением операции. Перед перезаписью файла мастер запрашивает подтверждение.

Примечание: Добавить данные в существующий документ Word невозможно.

Если вы хотите экспортировать только часть таблицы, запроса или формы, откройте нужный объект в базе данных Access и выделите записи.

Экспорт данных

На вкладке "Внешние данные" в группе "Экспорт" нажмите кнопку Word.

Откроется мастер Экспорт – Файл RTF.

Выберите назначение и параметры экспорта в диалоговом окне "Экспорт – Файл RTF".

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

В мастере Экспорт – Файл RTF укажите имя конечного файла.

Мастер всегда экспортирует форматированные данные. Чтобы просмотреть документ Word после экспорта, установите флажок Открыть целевой файл после завершения операции экспорта.

Если вы выделили определенные записи до начала экспорта, можно установить флажок Экспортировать только выбранные записи. Если же требуется экспортировать все записи в представлении, не устанавливайте флажок.

Примечание: Если записи не выделены, этот флажок недоступен (неактивен).

Access экспортирует данные и откроет конечный документ в Word, если вы установили соответствующий флажок в мастере. Кроме того, на последней странице мастера будет отображено состояние операции.

Как Access экспортирует объекты в Word

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

Что нужно учитывать при экспорте

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

Многозначное поле Access экспортируется в один столбец в Word. Значения разделяются запятыми (,).

Рисунки, объекты и вложения

Все графические элементы, такие как логотипы, данные в полях объектов OLE и вложения, не экспортируются.

Объекты Microsoft Graph не экспортируются.

Выражения не экспортируются в документ Word. Экспортируются только их результаты.

Подчиненные формы и подтаблицы

При экспорте формы или таблицы экспортируется только основная форма или таблица. Необходимо повторить экспорт для всех подчиненных форм и подтаблиц.

Дополнительные сведения

Сведения о том, как сохранить сведения об экспорте в виде спецификации, которую можно использовать повторно, см. в статье Сохранение параметров операции импорта или экспорта в виде спецификации.

Дополнительные сведения о запуске спецификаций см. в статье Выполнение сохраненной операции импорта или экспорта.

Дополнительные сведения о запуске спецификаций в определенное время см. в статье Планирование импорта или экспорта.

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

Экспорт отмеченной записи из формы Access в шаблон Word
Из поля со списком как выбрать запись которую галочкой отметила в форме.

Печать макета через двоичные данные и ворд аппликашион
Нашел обработку печати документа, в ней происходит печать формы документа используя объект ворд.

Экспорт В Ворд
В общем стоит задача, при нажатии кнопки в форме все заполненные поля перенести в ms word. По этой.


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

по-хорошему в двух - паспорт материала и режимы

Добавлено через 45 секунд
Можно это кнопкой сделать?

TechEVA, еще нужен макет куда выводить, т.е. шаблон в Ворде. И по времени: у меня началась рабочая неделя, поэтому делать долго буду. Могу дать пример.

Добавлено через 13 секунд

Да, если можно, может у меня чего выйдет..
Макет делается в ворде в обычном режиме? Просто читал, что нужно открыть режим формы в ворде и сохранить шаблон, но что-то такого режима в ворде не надыбал(2007).
Если у меня в форме ввиде таблицы все скомпоновано, то я могу создать в ворде таблицу и туда все выведется?
Долго недолго, неважно, не хочу вас отвлекать своими заморочками. Если несложно, то помогите) Если у меня в форме ввиде таблицы все скомпоновано попробовала с вашей заготовки, макет сделала, только не найду где лежит
сейчас искать некогда shanemac51, это шаблон ворд? такой нужно один создать и пересохранять потом с нужным названием?

TechEVA,
это не шаблон ворд - это программный перенос формы в пустой документ ворд
давно хотела попробовать этот вариант(через НТМ или НАДПИСИ)

на заполнение шаблона программно - сотни примеров
один из них в моем блоге

TechEVA,
или найду код, что делала пару дней назад, или заново набъю, но попозже, вечером


TechEVA,
хотя полученный в п9 шаблон можно применить для стандартного заполнения по примеру блога
скопировать оттуда код и добить свои 20 строк типа
mrepl "=имя",me.имя
.
.

TechEVA, вот пример.

Чтобы по нему отработало, надо создать шаблон в ворде *.dot и в него уже выводить данные.

Начните, что непонятно пишите.

пример суперкрасивый, особенно приходный ордер,но я не рискнула бы применить этот прием для сложной структуры

Добавлено через 5 минут
TechEVA,
я больше ориентируюсь на
- шаблоны с заменой меток(не закладок)
- нтмл

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

пример с гладким текстом попробую позже(типа договора), хотя НТМ вариант уже имеется

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

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

Использование слияния из самого Word-а не очень удобно, поэтому сегодня я расскажу, как можно заполнять такие шаблоны напрямую из Access, путем нажатия на одну кнопку.

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

Экспорт данных из Access в шаблон Word

Вся разработка делится на две части, это:

  • Настройка шаблона Word;
  • Настройка выгрузки данных в шаблон.

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

Примечание! Я использую Microsoft Word 2003.

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

Скриншот 1

Создайте столько полей, сколько Вам нужно.

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

Переходим к более интересной задачи, это к реализации самой выгрузки из Access в этот шаблон на VBA.

Примечание! Я использую Access в связке с MS SQL 2008, поэтому и данные буду брать от туда.

Код VBA для выгрузки данных в шаблон Word

Допустим, у Вас есть форма, сделайте на ней кнопку (я назвал ее testbutton) и в событие нажатие кнопки вставьте следующий код VBA:

Код прокомментирован, поэтому сложностей возникнуть не должно. Здесь весь смысл сводится к созданию объекта word.document и word.application. А после мы уже работаем с нашими объектами, т.е. заполняем их.

Экспорт данных из Access в шаблон Excel

В шаблоне Excel уже не нужно создавать поля как в Word, так как здесь мы уже будем ориентироваться по адресам ячеек.

Код VBA для выгрузки данных в шаблон Excel

Сначала добавьте кнопку на форму (я ее назвал testexcel) и вставьте следующий код в событие «Нажатие кнопки».

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

Читайте также: