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

Распечатка бланков Word с данными из Excel

128135 06.05.2010

15 век. Стоит принц — ждет письма от любимой невесты.
3 дня стоит — не ест, не пьет.Наконец прилетает почтовый голубь.
Принц дрожащими руками открывает письмо, а там "Куем мечи. Недорого."
Средневековый спам 🙂

Постановка задачи

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

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

Задача состоит в том, чтобы автоматически создать на каждого отдельное письмо, куда будут подставлены ФИО и название компании клиента, с тем чтобы потом эти письма вывести на печать. В терминах Microsoft Office такая процедура называется Слиянием (Mail Merge) .

Шаг 1. Подготовка списка клиентов в Excel

Таблица со списком клиентов должна удовлетворять нескольким простым условиям:

  • шапка таблицы должна быть простой — одна строка с уникальными названиями столбцов (без повторений и пустых ячеек)
  • в таблице не должно быть объединенных ячеек
  • в таблице не должно быть пустых строк или столбцов (отдельные пустые ячейки допускаются)
  • т.к. Excel и Word не смогу сами определить пол клиента по имени, то имеет смысл сделать отдельный столбец с обращением (господин, госпожа и т.п.) или с родовым окончанием (-ый или -ая) для обращения "Уважаемый(ая). "

Шаг 2. Подготовка шаблона письма в Word

Здесь все проще — нужен обычный документ Word с оставленными в нем пустыми местами для вставки полей из списка Excel.

Шаг 3. Слияние

Открываем шаблон письма в Word и запускаем пошаговый Мастер Слияния на вкладке Рассылки (Mailings) кнопкой Начать слияние ( Start Mail Merge ) – Пошаговый мастер слияния ( StepbyStep Merge Wizard ) :

В Word 2003 и старше эта команда была доступна в меню Сервис — Письма и рассылки — Мастер слияния (Tools — Letters and Mailings — Mail Merge) .

Далее следует процесс из 6 этапов (переключение между ними — с помощью кнопок Вперед (Next) и Назад (Back) в правом нижнем углу в области задач).

Этап 1. Выбор типа документа.

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

Этап 2. Выбор документа

На этом шаге необходимо определить, какой документ будет являться основой (заготовкой) для всех будущих однотипных сообщений. Мы выбираем — Текущий документ (Current document) .

Этап 3. Выбор получателей

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

Этап 4. Создание письма

На этом этапе пользователь должен указать – куда именно в документ должны попасть данные из подключенного списка. Для этого необходимо установить курсор в точку вставки в письме и использовать ссылку Другие элементы — она выводит полный набор всех полей списка, из которого мы и выбираем нужное поле для вставки:

В итоге, после вставки всех полей слияния у нас должно получиться нечто похожее:

Этап 5. Просмотр писем

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

Этап 6. Завершение слияния

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

Если необходимо сохранить созданные в результате слияния документы для дальнейшего использования или требуется внести ручную правку в некоторые из документов, то лучше использовать ссылку Изменить часть писем (Edit individual letters) , которая выведет результаты слияния в отдельный файл:

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

Ссылки по теме

Комментарии:

Елена
09.03.2010
Добрый день.
У меня была проблема, когда в документе Word поля слияния отображались не в том формате, который был в таблице Excel. Т.е. у меня в бланке фактуры сумма и цена отображались без 2-ух знаков после запятой, хотя в экселе эти поля отформатированны были именно так. Как это исправить в Word, каких-либо свойств полей слияния я не нашла..
Алексей
10.03.2010
На самом деле определить пол русского человека не очень сложно: у женщин отчество всегда оканчивается на "А". Проблемы возникнут с людьми без отчества (поляки, латыши (там свои прибамбасы с отчетсвами) и прочие иностранцы).
Алексей
18.03.2010
Елена попробуйте использовать функцию ТЕКСТ(ссылка_на_ячейку;нужный_формат). Думаю должно помочь .
Давид
21.04.2010
Огромное спасибо за статью.
Перерыл весь интернет.
Чуть не скачал CRM систему.
Пошел просвещать окружающих :).
ALEX
24.04.2010
Добий День! Вопрос для Всех или для Николая!
Этот пример для Excel 2007, А как Все тоже самое сделать в Excel и Word 2003, если конечно это можно там вопще сделать?
Заранее спасибо!
.
Николай Павлов
25.04.2010
ALEX: В 2003 и более старших версиях примерно тот же функционал доступен через меню Сервис — Письма и рассылки — Слияние (Tools — Letters and mailings — Mail merge).
ALEX
08.05.2010
Для Николая! Спасибо за подсказку.
Но есть предложение (или просьба),если не затруднит Вас указывать для какой версии сделан приемчик и пример,потому что уже появился MS Office 2010 (темная лошадка),чтобы потом долго не мучаться.
Также имеется несколько просьб/вопросов.
1.Можно ли сделать сводные таблицы из даных собраных через общие книги,чтобы отсекать все неправильные изменения сделаные из удаленных офисов общей книге на сервере, а потом даные вигружать в таблицу в формате XML Ecxel 2003?
Возможно этакую проблему можно сделать в несколько этапов, тогда пожалуйста подскажите на примере- как коректно нужно работать с общими книгами особенно если листы для ввода даных разнесены на разных компах а сама книга "далеко" на сервере.
Вторая часть моего вопроса о работе с XML для импорта/експорта даних, есть в коментариях к статье "Импорт даных из внешних баз Access. ".
Заранее Благодарен!!

Использование динамического обмена данными
Динамический обмен данными (DDE) — это метод передачи данных между приложениями, который доступен в операционной системе Microsoft Windows®. Он использует общую память для обмена данными. При использовании других методов обмена данными возникнет следующая проблема: данные из листа будут передаваться в формате, в котором они хранятся в Excel, а не с форматированием, применяемым к ячейкам листа.

Чтобы выбрать для обмена данными метод DDE при подключении к листу Excel во время выполнения слияния, нужно установить один флажок в Word:

В меню Сервис выберите Параметры, затем перейдите на вкладку Общие.
Щелкните Подтверждать преобразование при открытии.
Во время выполнения слияния на этапе подключения к файлу данных после определения местоположения листа Excel, к которому следует подключиться, открывается диалоговое окно Подтверждение источника данных. Щелкните Книги MS Excel с помощью DDE (*.xls) и нажмите кнопку ОК. В диалоговом окне Microsoft Excel для поля Диапазон или имя выберите диапазон ячеек или лист, содержащий нужные сведения, затем нажмите кнопку ОК. Числа в документе слияния будут выглядеть так же, как в ячейках использованного листа Excel.

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

For I=1 to 132000
range("a1").value=i
ActiveSheet.Print
Next i

При слиянии происходят 2 странные неприятности:

1) Неприятно: все числа превращаются из 2 чисда после запятой в 4 (т.е. вместо $12.35 Word печатает $12.3500)
2) Совсем плохо: Вместо $2,331.74 Word печатает $2,331.7399

Я понимаю, как справится с этим введя в Excel промежутчную ячейку =TEXT($X,"0.00") и экспортируя ее, но это же не решение для слияния больших таблиц с кучей колонок .

Спасибо за полезную статью.

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

Елене, Наталье: тогда на первом шаге выбираете не Письма, а Наклейки. И задаете потом желаемый размер (4 на страницу), поля и т.д.

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

В качестве шаблонов могут выступать следующие типы файлов:
— документы Word (расширения DOC, DOCX, DOCM)
— шаблоны Word (расширения DOT, DOTX, DOTM)
— книги Excel (расширения XLS, XLSX, XLSM, XLSB)
— шаблоны Excel (расширения XLT, XLTX, XLTM)
— текстовые документы (расширения TXT, DAT, XML и т.д.)

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

Количество шаблонов документов не ограничено
———————————
В каких случаях вам может пригодиться эта надстройка:

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

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

— подготовить письма, уведомления, грамоты в формате PDF или Word, заполнив созданные файлы информацией с листа Excel

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

Заполнение полей в документе word данными из документа excel

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

Выборочное заполнение данными из Windows Form нужных полей в документе Word
Подскажите, пожалуйста, как сделать так, чтобы нужные поля в документе Word заполнялись данными.

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

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

Заполнение документа Word несколько раз данными из другого документа
есть некий документ Word(test.docx). Нужно создать новый документ(test1.docx), и заполнить его.

Сообщение было отмечено Taras A как решение

Решение

Разобрался с данной возможностью- то что надо. Изначально сбивают с толку списки получателей, письма и другие названия команд.

Добавлено через 10 минут
Появился еще один вопрос. Может быть существуют сторонние средства для выполнения подобной задачи с блэкджеком и более широким функционалом?

Ссылка на основную публикацию