Содержание
- Вариант 1: Microsoft Office 2007 – 2021
- Шаг 1: Подготовка данных таблицы Microsoft Excel
- Шаг 2: Подготовка шаблона документа Microsoft Word
- Шаг 3: Добавление поля слияния на страницу
- Шаг 4: Проверка результатов
- Шаг 5: Завершение слияния
- Вариант 2: Microsoft Office 2003
- Вопросы и ответы
Вариант 1: Microsoft Office 2007 – 2021
Посредством функции слияния в Microsoft Word можно поместить данные, взятые из внешнего файла Excel, в определенные места документа. Это удобно применять для массовой рассылки электронной почты или при печати шаблонных материалов, отличия между которыми всего в нескольких местах. При редактировании исходной таблицы информация на странице документа будет изменяться динамически.
Если целью слияния является перенос данных из Excel в такую же таблицу, только в Microsoft Word, рекомендуем воспользоваться специальной вставкой со связью, что значительно облегчит выполнение поставленной задачи. На нашем сайте в отдельной статье есть подробное описание этой операции.
Подробнее: Как перенести таблицу из Microsoft Excel в Word со связью
Важно! Все рассмотренные далее действия будут выполняться на примере программного обеспечения Microsoft Office 2016. По этой причине могут наблюдаться некоторые отличия в интерфейсе в сравнении с другими версиями текстового редактора. Но руководство все равно является актуальными, а серьезные отличия будут помечаться.
Шаг 1: Подготовка данных таблицы Microsoft Excel
Первостепенно необходимо подготовить исходные данные в таблице Microsoft Excel, чтобы их можно было корректно интегрировать в документ Word. Для этого следует избавиться от всех объединенных ячеек, информация должна находиться в каждом столбце отдельно, в противном случае во время слияния будут возникать проблемы. При необходимости обратитесь за помощью к другой нашей статье, в которой подробно описана процедура разъединения ячеек.
Подробнее: Как разъединить ячейки в Microsoft Excel
Также рекомендуется озаглавить каждый столбец с данными. Впоследствии это облегчит выполнение некоторых действий при слиянии во время вставки поля на страницу документа. Процедура создания заголовков не требует особых навыков, но при возникновении трудностей можно обратиться к соответствующей статье на нашем сайте, где разобраны все способы выполнения поставленной задачи.
Подробнее: Как сделать заголовок столбцов в Microsoft Excel
Если база данных с исходными значениями создается в Microsoft Excel с нуля, рекомендуем воспользоваться «Умной таблицей». Это позволит облегчить соблюдение всех вышеописанных требований. На нашем сайте есть статья, в которой подробно рассматривается использование этой функции табличного редактора.
Подробнее: Как создать умную таблицу в Microsoft Excel
По итогу таблица с исходными данными должна соответствовать всего двум требованиям — наличие заголовков каждого столбца и отсутствие объединенных ячеек в рабочем диапазоне. Это не обязательные параметры, произвести слияние возможно и без их соблюдения, но если их выполнить, удастся существенно облегчить выполнение поставленной задачи в будущем.
Шаг 2: Подготовка шаблона документа Microsoft Word
Слияние зачастую выполняется для создания однотипных документов с отличиями в определенных местах. Например, эту функцию удобно использоваться для организации массовой рассылки электронной почты или печати документов. Соответственно, предварительно следует подготовить шаблон в Microsoft Word — часть текста, информация в которой будет оставаться неизменной.
Особых требований к данному этапу выполнения слияния нет, только рекомендации. Для удобства можно подготовить образец документа, содержащий полную информацию, взятую из базы Excel, чтобы он имел законченный вид. После этого достаточно будет удалить персональные данные, а затем можно переходить к следующему шагу этой инструкции. Пример готового шаблона показан на изображении ниже.
Примечание! Пунктуационные и орфографические ошибки, которые текстовый редактор выделяет синим и красным цветом, исправлять не нужно. Они исчезнут в будущем автоматически, после того как слияние будет закончено.
Читайте также:
Как убрать красное / синее / зеленое подчеркивание текста в Microsoft Word
Как пропустить все ошибки в документе Microsoft Word
Дополнительно рекомендуется активировать опцию затенения полей, чтобы вставленная посредством слияния информация визуально выделялась в будущем. Это облегчит редактирование документа на завершающих этапах.
- Откройте меню «Файл», кликнув по одноименной вкладке в Microsoft Word 2013 – 2021 или нажав по иконке в верхнем левом углу в Microsoft Word 2007 – 2010.
- На боковой панели слева щелкните по пункту «Параметры», чтобы открыть окно настроек программы.
- Воспользовавшись навигационной панелью в левой части интерфейса, перейдите в раздел «Дополнительно» и в блоке «Показать содержимое документа» из выпадающего меню «Затенение полей» выберите значение «Всегда». После этого нажмите по кнопке «ОК», чтобы сохранить изменения.
На этом предварительная настройка документов считается завершенной, можно переходить непосредственно к слиянию Microsoft Word и базы данных Excel.
Шаг 3: Добавление поля слияния на страницу
Все инструменты для выполнения слияния находятся на вкладке «Рассылки». На данном этапе выполнения поставленной задачи важны только два блока инструментов — «Начало слияния» и «Составление документа и вставка полей».
Процедура слияния подразумевает добавление на страницу документа полей с соответствующей информацией, которая будет браться из заранее подготовленной таблицы Microsoft Excel. Для этого необходимо сделать следующее:
-
Раскройте выпадающий список «Начать слияние», который находится в блоке «Начало слияния». Затем кликните в нем по предпочитаемому шаблону. В качестве примера будет выбран пункт «Письма», но работа с другими практически ничем не отличается.
Примечание! Если в выпадающем меню выбрать «Конверты» или «Наклейки», появится дополнительное диалоговое окно, в котором потребуется задать начальные параметры. Каждое действие сопровождается текстовой подсказкой, поэтому проблем возникнуть не должно. В остальном слияние выполняется описанным ниже способом.
- Раскройте выпадающее меню «Выбрать получателей», которое расположено в том же блоке чуть ниже. В нем нажмите по опции «Использовать существующий список». Это позволит определить в качестве базы данных с исходными значениями заранее созданную таблицу Microsoft Excel.
- В появившемся окне файлового менеджера перейдите в директорию, где находится таблица с данными, выделите ее щелчком левой кнопки мыши и нажмите «Открыть».
-
Если файл Excel содержит несколько листов с информацией, выберите необходимый и кликните по кнопке «ОК». Обратите также внимание на пункт «Первая строка данных содержит заголовки столбцов», если этот параметр соответствует действительности, установите отметку напротив него.
Обратите внимание! Если базу данных с исходными значениями необходимо будет сменить в будущем, воспользуйтесь опцией в блоке «Начало слияния», которая называется «Изменить список получателей». При ее вызове откроется файловый менеджер, в котором потребуется выбрать новую таблицу Excel.
- Установите курсор в то место документа, куда необходимо вставить информацию, взятую из таблицы. Для этого раскройте в блоке «Составление документа и вставка полей» выпадающий список меню «Вставить поле слияния» и выберите нужный столбец данных. В качестве примера будет добавлено поле «Номер».
- Аналогичным образом добавьте оставшиеся поля, каждый раз устанавливая курсор в нужное место и выбирая из выпадающего списка соответствующий параметр.
Примечание! Оставшиеся инструменты в блоке «Составление документа и вставка полей» в практическом применении не нуждаются, они служат для автоматизации некоторых процессов при работе с большим объемом данных. Например, с помощью инструмента «Правила» можно задать некоторые условия вставки определенных полей, а вызвав диалоговое окно «Подбор полей» — заранее настроить дополнительные поля, чтобы быстро вставлять их посредством других опций.
Шаг 4: Проверка результатов
После добавления полей слияния на страницу документа информация из таблицы Excel отображаться в них не будет, из-за чего не получится визуально определить корректность подстановочных данных. Для этого необходимо воспользоваться другим инструментом вкладки «Рассылки», который так и называется — «Просмотр результатов».
Первостепенно необходимо включить отображение данных в полях. Для этого кликните по кнопке «Просмотреть результаты». На странице документа сразу отобразится информация в соответствующих местах. В правой части блока инструментов «Просмотр результатов» можно воспользоваться стрелками, чтобы ознакомиться с каждым образцом будущих документов. Позволяется даже вручную вводить номер строки Excel, из которой были взяты данные.
Если необходимо проверить заполнение полей определенного получателя, следует воспользоваться диалоговым окном «Найти получателя». Кликните по нему и в появившемся меню введите в поле «Найти» информацию из любого столбца таблицы Excel. Затем определите область поиска. Чтобы повысить точность при обработке большого объема данных, установите переключатель в положение «по полю» и из выпадающего списка выберите непосредственно нужное поле. Затем кликните по кнопке «Найти далее».
Оставшийся инструмент в блоке «Просмотр результатов» необходим для поиска ошибок, которые могут возникнуть из-за наличия объединенных ячеек в таблице Excel или несоответствия форматирования некоторых полей. Текстовый процессор Word автоматически вычисляет все ошибки и составляет соответствующий отчет. Для этого кликните по кнопке «Поиск ошибок» и в появившемся диалоговом окне определите тип проверки, после чего нажмите по кнопке «ОК».
Шаг 5: Завершение слияния
После добавления всех необходимых полей на страницу документа и проверки корректности их отображения можно переходить непосредственно к массовой рассылке или печати. Все необходимые для этого инструменты расположены на вкладке «Рассылки» в блоке «Завершение».
Открыв выпадающий список пункта «Найти и объединить», можно увидеть три опции:
- «Изменить отдельные документы». Позволяет выбрать один документ для редактирования и дальнейшего применения (печати или рассылки). Для этого необходимо будет в блоке «Просмотр результатов» определить нужного получателя, затем установить отметку на пункте «текущую запись» и кликнуть по кнопке «ОК». Если выбрать несколько документов или все, они сольются воедино.
-
«Печать документов». Открывает подобное диалоговое окно, в котором необходимо выбрать количество записей и нажать по кнопке «ОК». В дальнейшем откроется стандартное окно для печати документов.
На нашем сайте есть отдельная статья, в которой подробно описан процесс настройки печати. Если выполнение этой процедуры вызывает трудности, ознакомьтесь с изложенным там материалом.
Подробнее: Как настроить печать документов в Microsoft Word
- «Отправить электронные сообщения». Предоставляет диалоговое окно для настройки рассылки. Для корректной работы требуется, чтобы в базе данных Excel был отдельный столбец с перечнем адресов электронной почты каждого получателя, иначе этой функцией воспользоваться не получится.
Вариант 2: Microsoft Office 2003
В отличие от Microsoft Word 2007 – 2021 в версии 2003 года все ранее описанные действия выполняются иначе. Обусловлено это кардинально отличающимся интерфейсом программы. Но стоит отметить, что этапы выполнения поставленной задачи остаются неизменными. По этой причине ниже будет пропущена часть о подготовке базы данных в таблице Microsoft Excel и создании шаблона в текстовом редакторе. Также описание каждой функции будет кратким, так как полное уже приводилось выше в статье.
Примечание! Microsoft Word 2003 не имеет совместимости с новейшим форматом XSLX, поэтому, чтобы выполнить слияние, базу данных в Excel необходимо сохранять в формате XLS.
В рассматриваемой версии приложения нет привычной панели инструментов, поделенной на отдельные блоки, из-за чего пользоваться функциями слияния неопытному пользователю довольно трудно. По этой причине ниже все действия будут выполняться посредством специального Мастера.
- Раскройте меню «Сервис», находящийся в верхней части интерфейса окна, и наведите курсор на пункт «Письма и рассылки», затем кликните по опции «Слияние».
- В появившейся панели Мастера, расположенной в правой части окна, выберите из списка тип документа и щелкните «Далее. Открытие документа». Как и в примере ранее, сейчас будет выбран шаблон «Письма».
- Определите документ, на основе которого будет осуществляться рассылка. Если шаблон создавался в текущем, выберите соответствующий пункт и нажмите «Далее. Выбор типа документа».
- Возьмите в качестве исходного списка получателей заранее созданную таблицу Microsoft Excel. Для этого установите курсор в положение «Использование списка» и кликните по ссылке «Обзор», находящейся чуть ниже.
- В новом окне файлового менеджера перейдите в директорию с нужным документом, выделите его и щелкните по кнопке «Открыть».
- По аналогии с ранее рассмотренными версиями текстового процессора выберите лист книги с нужной информацией, установите при необходимости отметку напротив пункта «Первая строка данных содержит заголовки столбцов» и нажмите «ОК».
- Поставьте отметки напротив тех строк списка, информация из которых необходима для создания слияния. В нижней части этого диалогового окна есть кнопки с дополнительными функциями. Посредством них можно сразу снять или добавить выделения на все пункты, выполнить поиск или замену. После завершения этой процедуры нажмите «ОК».
- Вернувшись в главное окно текстового редактора, кликните по пункту «Далее. Создание писем», расположенном на панели мастера.
- Установите курсор на странице документа в то место, куда будет вставлено поле, затем щелкните по строке «Другие элементы».
- В новом окне поставьте переключатель в положение «Поля базы данных», выделите в списке нужное поле и кликните по кнопке «Вставить». Проследите за тем, чтобы на странице документа появилась соответствующая надпись.
- Закройте окно, установите курсор в новое положение, а затем снова кликните по пункту «Другие элементы» и вставьте новое поле. Таким образом добавьте все необходимые элементы на страницу. После этого щелкните «Далее. Просмотр писем».
- Воспользовавшись предложенными инструментами на панели Мастера, просмотрите все экземпляры документов и выявите неточности, впоследствии исправив их. Также с помощью кнопки «Исключить получателя» можно убрать лишние дубликаты. После завершения этой процедуры кликните по пункту «Далее. Завершение слияния».
- Завершите слияние, нажав по строке «Печать». После этого откроется новое диалоговое окно, в котором останется выбрать количество печатаемых экземпляров. Также можно отдельно изменить часть писем, воспользовавшись соответствующей опцией на панели Мастера.
Обратите внимание! В зависимости от выбранного типа создаваемого слияния, который определялся на втором шаге вышепредставленной инструкции, в завершающей части будут предложены разные действия. В данном случае это печать документа, но если было выбрано «Электронное сообщение», предлагалось бы ввести контактную информацию получателей.
МЕНЮ САЙТА
КАТЕГОРИИ РАЗДЕЛА ОПРОСЫ |
Слияние данных MS Excel и MS Word
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ] |
Содержание
- 1 Создание связей между рабочими книгами
- 2 Прежде чем создавать связи между таблицами
- 3 Обновление связей
- 4 Разорвать связи в книгах Excel
Этот метод можно рекомендовать, когда возникает необходимость переноса данных из таблиц Еxcel для вставки в текстовый документ.
Ранее описанный способ вставки таблицы как графического объекта имеет определенные ограничения, такие, как: невозможность изменения данных, искажения при масштабировании, нечитаемость мелкого шрифта и т.д.
Второй предложенный способ — вставлять листы Excel непосредственно в документ, — приводит к неоправданному «раздуванию» файла, кроме того, внедренные объекты иногда ведут себя непредсказуемо.
Однако, используя технологию Automation, объекты можно не только внедрять, но и связывать.
Сейчас мы свяжем между собой таблицы Еxcel и Word, причем так, чтобы изменения в исходной таблице приводили к изменениям в таблице документа. Итак, у нас есть исходная таблица с расчетами:
Создаем в Word точно такую же, но пустую таблицу:
Заголовки не набираем, а специально оставляем пустые строки.
После проделанных операций, на экране должно быть открыты оба окна: окно MS Word с заготовкой и окно MS Excel с расчетной таблицей. Можем приступать к связыванию. Суть его состоит в том, чтобы последовательно, одна за другой, связать ячейки таблицы с необходимыми позициями в текстовом документе.
Для этого:
- Перейдите на лист Еxcel и сделайте текущей ячейку, которую необходимо связать с документом (начнем с В1).
- Выполняем копирование ячейки (меню Правка-Копировать либо сочетание клавиш Ctrl+C).
- Переходим в окно с документом Word и помещаем курсор в позицию для вставки. В данном случае это будет заголовок, расположенный через одну строку над таблицей.
- В меню Word выбираем Правка-Специальная вставка. В результате откроется диалоговое окно Специальная вставка, где в области Источник (в левом верхнем углу) указаны координаты выделенной ячейки:
- Устанавливаем переключатель в положение Связать.
- В списке Как выбираем Неформатированный текст.
- Щелчком по кнопке ОК закрываем окно.
Таким образом мы установили связь между текстовой позицией в документе и ячейкой в рабочем листе. Необходимо сразу отметить, что с объединенными ячейками связывание работает не совсем корректно. Аналогично необходимо связать оставшиеся ячейки. Окончательно документ должен выглядеть так:
Теперь мы имеем возможность форматировать таблицу, как нам удобно, при этом изменение данных будет происходить автоматически. Также можно отметить, что таблицу в Word можно использовать как сводную, занося в нее значения из разных листов и даже книг Еxcel.
Режим обновления также можно настраивать. Для этого необходимо:
- Выбрать любое вставленное значение в Word и нажать правую кнопку мыши:
- В контекстном меню выбрать Связанный объект Лист-Связи.
- В открывшемся окне можно выбирать Способ обновления связи:
Способ обновления можно изменять для каждой связи по отдельности, а можно выделить изменить для всех значений или для нескольких сразу.
Данный способ при разовом использовании подходит мало, так как он достаточно трудоемкий на начальном этапе. Однако при частых вычислениях (курсовые, дипломные работы, финансовые отчеты и т.д.) он окупается. Также при изменении структуры таблицы в Excel происходит нарушение связей, что влечет за собой разрушение целостности таблицы в документе. Поэтому связывание лучше выполнять после окончательного формирования расчетных таблиц.
Очень многие в своей работе сталкиваются с необходимостью формировать отчёты, сводки, обобщающие документы на основе каких-то вычислений, расчетов, таблиц с исходными данными и их анализа. И часто для выполнения этих задач приходится прибегать к комбинации таких программных продуктов как Word (где формируется итоговый отчет для дальнейшей распечатки или пересылки кому-либо) и Excel (в котором собираются и обрабатываются исходные данные для отчета).
Если разовые задачи не вызывают особых вопросов, то формирование периодических отчетов порой доставляет немало проблем. Рутинное копирование одних и тех же табличек или графиков (с немного изменившимися данными) в одни и те же документы крайне утомляет. Но этот процесс можно автоматизировать. Как это сделать — читайте ниже.
Создание связи между Word и Excel
Самый быстрый и эффективный способ создать связи между файлами — скопировать нужную информацию из одного и вставить в другой, воспользовавшись инструментом «Специальная вставка». Для этого нужно выделить таблицу, ячейку или диаграмму в Excel, перейти в Word, поставить курсор в нужную часть документа и:
- нажать правую кнопку мыши и выбрать пиктограмму с нужным способом вставки
- или выбрать на вкладке «Главная» команду «Вставить» (нажать на стрелочку под иконкой) и в появившемся списке выбрать «Специальная вставка», либо воспользоваться сочетанием клавиш «CTRL+ALT+V». В появившемся окне необходимо активировать пункт «Связать», выбрать вариант вставки и нажать ОК.
В результате вставленный объект будет связан с тем файлом, откуда он был скопирован, и при обновлении исходных данных можно будет быстро обновить связи в документе Word.
Выбор способа вставки данных
Как видно на рисунке 2, есть несколько способов вставки данных в документ. В повседневной работе придется выбирать, по сути, между двумя вариантами — вставить таблицу как картинку (без возможности ее форматирования) или как текст (а значит, с возможностью вносить изменения). Для диаграмм вариант всего один — картинка.
Кроме того, важно отличать связанные объекты от внедренных. Внедрение — операция, которая не рассматривается в этой статье. Суть ее в том, что в документ Word внедряется объект Excel, который позволяет работать с данными в табличном процессоре прямо из документа Word. При этом исходный файл и текстовый документ никак не связаны. Внедрение используется редко, так как сильно увеличивает размер файла.
В большинстве случаев при выборе способа вставки таблицы следует выбирать текстовый вариант, чтобы иметь возможность настроить форматирование под себя. Картинки можно вставлять, если форматирование в исходном документе Excel Вас полностью устраивает.
Бывают ситуации, когда приходится вставлять не всю таблицу, а данные из отдельных ячеек. Например, когда нужно вставить в предложение какую-то цифру или текст, которые есть в файле Excel и будут изменяться, или же когда таблица в Word составляется из нескольких разрозненных ячеек Excel (из разных таблиц, листов или даже книг). В таких случаях копируем данные ячеек в нужное место и выбираем способ вставки «Неформатированный текст».
Настройка способа обновления связей и работа с диспетчером связей
Вставленные связи можно обновлять несколькими способами. Например, если на вставленном объекте кликнуть правой кнопкой мыши, то в меню будет кнопка «Обновить связь», нажатие которой приведет к обновлению выбранной связи.
Можно задать параметры обновления сразу для всех объектов. Для этого нужно вызвать диспетчер связей документа. Проходим по пути «Файл»-«Сведения»-«Изменить связи с файлами» (данная команда доступна, когда в документе есть как минимум одна связь, а сам документ сохранен).
В диспетчере показаны все связи файла. В группе «Способ обновления связи» можно выбрать тот вариант, который более предпочтителен или вообще отключить обновление связей. Также для каждой связи можно задать настройку «Сохранять формат при обновлении». Она отвечает за то, чтобы выбранное Вами форматирование не слетало, когда вы обновите связь. В этом же диспетчере можно разорвать связи, открыть или изменить источник.
Работа со связями через коды полей Word
По своей сути каждая связь представляет собой специальное поле Word. Если в документе со связями Вы нажмете ALT+F9, то увидите, что вместо вставленных данных отобразятся коды этих полей.
Работа с ними открывает возможности, которые не предоставляет стандартный диспетчер связей. И хотя коды полей Word — широчайшая тема, выходящая далеко за рамки данной статьи, пару примеров их полезного использования мы приведем:
1) Изменение ссылок на документы сразу во всех связях
Связи с исходными документами осуществляются через прямые ссылки. Если Вы переложили исходный файл, то нужно будет переподтянуть все связи. В диспетчере связей придется делать это для каждой связи отдельно (даже если выбрать несколько — диспетчер будет по очереди предлагать заменять каждую ссылку). Если же вы перейдете в режим отображения кодов полей (ALT+F9), то старые ссылки можно поменять на новые простой заменой (CTRL+H или «Главная-Заменить»), указав старый адрес и новый.
2) Использование именованных диапазонов для вставки таблиц
Если вы вставляете в Word таблицу из Excel, то ссылка на нее будет содержать конкретный диапазон ячеек. То есть, если вы добавите в таблицу строки или столбцы — то данные обновятся только в пределах жестко указанного диапазона. Диспетчер связей позволяет изменить диапазон вручную. Автоматическое же изменение можно настроить, задав в Excel именованный динамический диапазон (урок здесь и здесь, не разберетесь — пишите нашему боту в Telegram, поможем), а в файле Word в режиме правки кодов полей после этого нужно будет заменить прямые ссылки на ячейки на название именованного диапазона. Теперь при изменении размера исходной таблицы в Excel документ в Word обновится корректно.
Ваши вопросы по статье можете задавать через нашего бота обратной связи в Telegram: @KillOfBot
С уважением, команда tDots.ru
Связь между таблицами Excel – это формула, которая возвращает данные с ячейки другой рабочей книги. Когда вы открываете книгу, содержащую связи, Excel считывает последнюю информацию с книги-источника (обновление связей)
Межтабличные связи в Excel используются для получения данных как с других листов рабочей книги, так и с других рабочих книг Excel. К примеру, у вас имеется таблица с расчетом итоговой суммы продаж. В расчете используются цены на продукт и объем продаж. В таком случае имеет смысл создать отдельную таблицу с данными по ценам, которые будут подтягиваться с помощью связей первой таблицы.
Когда вы создаете связь между таблицами, Excel создает формулу, которая включает в себя имя исходной книги, заключенную в скобки [], имя листа с восклицательным знаком на конце и ссылку на ячейку.
Создание связей между рабочими книгами
- Открываем обе рабочие книги в Excel
- В исходной книге выбираем ячейку, которую необходимо связать, и копируем ее (сочетание клавиш Ctrl+С)
- Переходим в конечную книгу, щелкаем правой кнопкой мыши по ячейке, куда мы хотим поместить связь. Из выпадающего меню выбираем Специальная вставка
- В появившемся диалоговом окне Специальная вставка выбираем Вставить связь.
Есть еще один, более простой, вариант создания связи между таблицами. В ячейку, куда мы хотим вставить связь, ставим знак равенства (так же как и для обычной формулы), переходим в исходную книгу, выбираем ячейку, которую хотим связать, щелкаем Enter.
Вы можете использовать инструменты копирования и автозаполнения для формул связи так же, как и для обычных формул.
Прежде чем создавать связи между таблицами
Прежде чем вы начнете распространять знания на свои грандиозные идеи, прочитайте несколько советов по работе со связями в Excel:
Делайте легко отслеживаемые связи. Не существует автоматического поиска всех ячеек, содержащих ссылки. Поэтому, используйте определенный формат, чтобы быстро идентифицировать связи с другими таблицами, в противном случае, документ, содержащий ссылки, может разрастись до такой степени, что его будет трудно поддерживать.
Автоматические вычисления. Исходная книга должна работать в режиме автоматического вычисления (установлено по умолчанию). Для переключения параметра вычисления перейдите по вкладке Формулы в группу Вычисление. Выберите Параметры вычислений –> Автоматически.
Избегайте циклические ссылки. Циклические связи – когда две рабочие книги содержат ссылки друг на друга – могут быть причиной медленного открытия и работы файла.
Обновление связей
Для ручного обновления связи между таблицами, перейдите по вкладке Данные в группу Подключения. Щелкните по кнопке Изменить связи.
В появившемся диалоговом окне Изменение связей, выберите интересующую вас связь и щелкните по кнопке Обновить.
Разорвать связи в книгах Excel
Разрыв связи с источником приведет к замене существующих формул связи на значения, которые они возвращают. Например, связь =Цены!$B$4 будет заменена на 16. Разрыв связи нельзя отменить, поэтому прежде чем совершить операцию, рекомендую сохранить книгу.
Перейдите по вкладке Данные в группу Подключения. Щелкните по кнопке Изменить связи. В появившемся диалоговом окне Изменение связей, выберите интересующую вас связь и щелкните по кнопке Разорвать связь.
Перейти к содержанию
На чтение 2 мин Опубликовано 28.08.2015
- Вставить
- Связать
Узнайте, как обмениваться данными Excel с документами Word и другими файлами.
Вставить
Чаще всего вам нужно будет просто вставлять статические данные Excel в документ Word. Для этого:
- Выделите данные в Excel.
- Кликните правой кнопкой мыши и выберите в контекстном меню пункт Копировать (Copy) или нажмите Ctrl+C.
- Откройте документ Word.
- На вкладке Главная (Home) нажмите команду Вставка (Paste) > Специальная вставка (Paste Special).
- Выберите переключатель Вставить (Paste), а затем в списке Как (As) щелкните по строке Формат HTML (HTML Format).
- Нажмите ОК.
Примечание: Вместо выполнения шагов 4-6, просто нажмите Ctrl+V.
- Кликните по значку в левом верхнем углу таблицы и добавьте границы.
Результат:
Примечание: Чтобы удалить таблицу, щелкните правой кнопкой мыши по значку в верхнем левом углу таблицы, а затем нажмите кнопку Удалить таблицу (Delete Table).
Связать
Вы можете связать исходные данные Excel с данными, вставленными в Word. Если изменить данные в Excel, данные в Word будут обновляться автоматически.
- Повторите шаги с 1 по 4, приведенные ранее.
- Щелкните по переключателю Связать (Paste link). Затем выберите строку Формат HTML (HTML Format).
- Нажмите ОК.
- Кликните по значку в левом верхнем углу таблицы и добавьте границы.
Результат:
- Измените данные в Excel.
Результат:
Примечание: В документе Word на вкладке Файл (File) выберите Сведения (Info). Затем в нижнем правом углу нажмите кнопку Изменить связи с файлами (Edit Links to files), чтобы открыть диалоговое окно Связи (Links). Здесь вы можете разорвать связь, изменить расположение файла Excel и т.д.
Оцените качество статьи. Нам важно ваше мнение:
Word для Microsoft 365 Word для Microsoft 365 для Mac Word 2021 Word 2021 для Mac Word 2019 Word 2019 для Mac Word 2016 Word 2016 для Mac Word 2013 Word 2010 Еще…Меньше
Ниже приведены некоторые советы по подготовке электронной таблицы Excel к слиянию. Проверьте следующее:
-
Названия столбцов в электронной таблице должны соответствовать именам полей, которые нужно вставить при слиянии. Например, чтобы обращаться к читателям по именам в документе, потребуются отдельные столбцы для имен и фамилий.
-
Все данные, участвующие в слиянии, должны находиться на первом листе электронной таблицы.
-
Записи данных, содержащие значения в процентах, денежные значения и почтовые индексы, в электронной таблице должны быть надлежащим образом отформатированы, чтобы приложение Word правильно их прочитало.
-
Электронная таблица Excel, которая будет использоваться в слиянии, должна храниться на локальном компьютере.
-
Изменения и дополнения необходимо внести в электронную таблицу до ее подключения к документу для слияния в Word.
Примечания:
-
Вы можете импортировать данные из электронной таблицы Excel, выполнив импорт из файла с разделителями-запятыми (CSV) или текстового файла (TXT), и создать новую электронную таблицу с помощью мастера импорта текста.
-
Дополнительные сведения см. в статье Подготовка источника данных Excel к слиянию в Word.
Подключение и изменение списка рассылки
Подключение к источнику данных Дополнительные сведения см. в статье Источники данных, которые можно использовать для слияния почты.
Изменение списка рассылки
-
Нажмите кнопку Изменить список получателей.
-
В разделе Получатели слияния снимите флажок рядом с именами тех людей, которым не нужно получать вашу рассылку.
Вы можете вставить одно или несколько полей слияния, которые берут данные из электронной таблицы и помещают в документ.
Для вставки полей слияния на конверт, наклейку, сообщение электронной почты или письмо
-
нажмите Рассылки > Блок адреса.
Дополнительные сведения см. в статье Вставка блока адреса
-
Чтобы добавить строку приветствия, выберите пункт Строка приветствия.
Дополнительные сведения см. в статье Вставка строки приветствия.
-
Сведения о том, как добавить поля слияния, такие как номера счетов, см. в статье Вставка полей слияния.
-
Нажмите кнопку ОК.
-
В меню Файл выберите команду Сохранить.
Если вы хотите подробнее узнать о возможностях для настройки сообщения электронной почты, см. статью Слияние электронной почты в Word.
Вставив нужные поля слияния, просмотрите результаты, чтобы убедиться, что содержимое в порядке. После этого вы можете завершить процесс слияние.
-
Нажмите Рассылки > Просмотр результатов.
-
Перемещаясь по записям в источнике данных с помощью кнопок Следующая запись и Предыдущая запись , посмотрите, как записи будут отображаться в документе.
-
Нажмите Найти и объединить > Печать документов или Отправка сообщений электронной почты.
При сохранении документа слияния подключение к источнику данных сохраняется. Вы можете повторно использовать документ слияния для следующей массовой рассылки.
-
Откройте документ слияния и нажмите кнопку Да, когда Word спросит, нужно ли сохранить подключение.
Ниже приведены некоторые советы по подготовке электронной таблицы Excel к слиянию. Проверьте следующее:
-
Названия столбцов в электронной таблице должны соответствовать именам полей, которые нужно вставить при слиянии. Например, чтобы обращаться к читателям по именам в документе, потребуются отдельные столбцы для имен и фамилий.
-
Все данные, участвующие в слиянии, должны находиться на первом листе электронной таблицы.
-
Записи данных, содержащие значения в процентах, денежные значения и почтовые индексы, в электронной таблице должны быть надлежащим образом отформатированы, чтобы приложение Word правильно их прочитало.
-
Электронная таблица Excel, которая будет использоваться в слиянии, должна храниться на локальном компьютере.
-
Изменения и дополнения необходимо внести в электронную таблицу до ее подключения к документу для слияния в Word.
Дополнительные сведения см. в статье Подготовка источника данных Excel к слиянию в Word.
Подключение и изменение списка рассылки
Подключение к источнику данных Дополнительные сведения см. в статье Источники данных, которые можно использовать для слияния почты.
-
Нажмите кнопку Изменить список получателей.
Подробнее см. в статье Слияние: изменить получателей.
Подробнее о сортировке и фильтрации см. в статье Сортировка данных для слияния и Фильтрация данных для слияния.
-
Нажмите кнопку ОК.
Вы можете вставить одно или несколько полей слияния, которые берут данные из электронной таблицы и помещают в документ.
-
Перейдите к разделу Рассылки > Вставить поле слияния.
-
Добавьте необходимое поле.
-
При необходимости повторите шаги 1 и 2.
-
В меню Файл выберите команду Сохранить.
Если вы хотите подробнее узнать о возможностях для настройки сообщения электронной почты, см. статью Слияние электронной почты в Word.
Вставив нужные поля слияния, просмотрите результаты, чтобы убедиться, что содержимое в порядке. После этого вы можете завершить процесс слияние.
-
Нажмите Рассылки > Просмотр результатов.
-
Перемещаясь по записям в источнике данных с помощью кнопок Следующая запись и Предыдущая запись, посмотрите, как записи будут отображаться в документе.
-
Нажмите Найти и объединить > Печать документов или Слияние по электронной почте.
При сохранении документа слияния подключение к источнику данных сохраняется. Вы можете повторно использовать документ слияния для следующей массовой рассылки.
-
Откройте документ слияния и нажмите кнопку Да, когда Word спросит, нужно ли сохранить подключение.
Нужна дополнительная помощь?
Вы создали список контактов и других данных, который хотите использовать для слияния в Word. Если в качестве источника данных используется таблица Excel, то достаточно подготовить данные для слияния. Но если источником данных является файл со значениями, разделенными табуляциями (TXT) или запятыми (CSV), сначала следует импортировать данные в Excel, а затем подготовить их для слияния.
Шаг 1. Настройка источника данных в Excel
Если вы используете электронную таблицу Excel в качестве источника данных для слияния в Word, пропустите этот шаг. Если источником данных является TXT- или CSV-файл, мастер импорта текста поможет вам отформатировать данные в Excel.
После импорта TXT- или CSV-файла перейдите к шагу 2.
-
Откройте Excel.
-
Щелкните Данные > Из текстового/CSV-файла.
-
Выберите нужный TXT- или CSV-файл и нажмите кнопку Импорт.
-
В окне предварительного просмотра нажмите кнопкуПреобразование данных.
-
Выберите столбец, содержащий почтовые индексы, или другой столбец, который нужно отформатировать.
-
Выберите Преобразование > Тип данных: > Текст.
-
Нажмите кнопку Заменить текущий.
-
При необходимости повторите шаги 5–7.
-
Выберите Закрыть и загрузить.
-
Выберите Файл > Сохранить как и сохраните файл с другим именем.
-
Откройте Excel.
-
Excel 2016 Выберите Данные > Получение внешних данных > Из текста.
-
Выберите нужный TXT- или CSV-файл и нажмите кнопку Импорт.
-
В мастере импорта текста в области Тип исходных данных выберите С разделителями.
-
При необходимости выберите элемент Мои данные содержат заголовки над областью Предварительный просмотр, а затем нажмите кнопку Далее.
-
В области Разделители установите нужный флажок (например, «знак табуляции» или «запятая») и нажмите кнопку Далее.
-
В области Образец разбора данных выберите столбец, содержащий почтовые индексы, а затем в списке Формат данных столбца выберите Текстовый.
Примечание: Каждый раз, когда вы применяете формат («общий», «текстовый» или «дата») к столбцу, в его заголовке отображается имя формата.
-
При необходимости повторите действие 7, выбрав столбец, который вы хотите изменить, и нужный формат данных.
-
Нажмите кнопку Finish (Готово).
-
В диалоговом окне Импорт данных примите значение по умолчанию (имеющийся лист), а затем нажмите кнопку ОК.
Внимание: В диалоговом окне Импорт данных указывается адрес выбранной ячейки. Данные импортируются, начиная с этой ячейки.
-
Сохраните электронную таблицу с новым именем файла.
Шаг 2. Подготовка источника данных
В источнике данных Excel, который вы хотите использовать в качестве списка рассылки в Word, проверьте правильность форматирования столбцов с числовыми данными. Например, примените нужный формат, такой как денежный.
При выборе процентного формата помните, что значения в ячейках будут умножены на 100. Если вы хотите избежать этого, отформатируйте столбец с процентными значениями как текст.
Отформатируйте значения почтовых индексов как текст, чтобы сохранить данные во время слияния. Если вы не сделали этого при импорте, выполните форматирование сейчас. Начальные нули, например в индексе 000399, удаляются при слиянии, если значения не отформатированы как текст.
-
Выберите столбец, содержащий почтовые индексы или другие данные, которые нужно отформатировать.
-
На вкладке Главная в группе Число щелкните стрелку раскрывающегося списка Числовой формат и выберите нужное значение (например, «Текст»).
Не забудьте добавить нужный символ перед полем слияния или после него. Например, вот как будут выглядеть денежные и процентные значения, если опустить символы:
Если добавить символы, числа будут иметь смысл.
В документе слияния можно добавить символы до и после поля слияния следующим образом:
См. также
-
Создание и отправка массовой рассылки, наклеек и конвертов с помощью слияния
-
Слияние почты — бесплатное 10-минутное обучающее видео
Важным шагом при настройке слияния в Word является подготовка источника данных. Вы можете использовать существующий источник данных Excel или создать новый, импортировав файл, разделенный табуляциями (TXT) или запятыми (CSV). После настройки и подготовки источника данных можно выполнить слияние почты с помощью динамический обмен данными (DDE) с мастером слияния или вручную.
Если у вас нет источника данных Excel для слияния, вы можете использовать список контактов или адресную книгу в TXT- или CSV-файле. Мастер импорта текста поможет вам извлечь данные из файла в Excel.
-
Откройте Excel.
-
На вкладке Данные выберите элемент Из тестового/CSV-файла.
-
Выберите нужный TXT- или CSV-файл и нажмите кнопку Импорт.
-
В мастере импорта текста в области Тип исходных данных выберите С разделителями.
-
При необходимости установите флажок Мои данные содержат заголовки над областью Предварительный просмотр файла, а затем нажмите кнопку Далее.
-
В разделе Разделители установите нужный флажок (например, «знак табуляции» или «запятая») и нажмите кнопку Далее.
Совет: В области Образец разбора данных вы можете увидеть, как результаты будут выглядеть в виде таблицы.
-
В области Образец разбора данных выберите столбец, содержащий почтовые индексы, а затем в списке Формат данных столбца выберите Текстовый.
Примечания:
-
Доступны форматы Общий, Текстовый и Дата. Каждый раз, когда вы применяете формат данных к столбцу, в его заголовке отображается имя формата.
-
Столбец, содержащий числовые данные, например процентные или денежные значения, можно отформатировать только после импорта файла. См. раздел «Форматирование числовых данных в Excel» ниже.
-
-
При необходимости повторите действие 7, выбрав столбец, который вы хотите изменить, и нужный формат данных.
-
Нажмите кнопку Finish (Готово).
-
В диалоговом окне Импорт данных примите значение по умолчанию (имеющийся лист), а затем нажмите кнопку ОК.
Внимание: В диалоговом окне Импорт данных указывается адрес выбранной ячейки. Данные импортируются, начиная с этой ячейки.
-
Добавив данные, сохраните источник с новым именем файла.
Форматирование числовых данных в Excel
Отформатируйте все числовые данные, например процентные или денежные значения, в новых и существующих источниках данных Excel, которые предполагается использовать при слиянии в Word. Чтобы сохранить числовые данные, которые вы отформатировали как процентные или денежные значения, при слиянии, следуйте инструкциям в разделе «Шаг 2. Слияние с помощью динамического обмена данными (DDE)».
В источнике данных Excel, который вы хотите использовать в качестве списка рассылки в Word, проверьте правильность форматирования столбцов с числовыми данными. Например, примените нужный формат, такой как денежный.
-
Откройте источник данных Excel.
-
Выберите столбец, который вы хотите отформатировать.
-
На вкладке Главная в группе Число в щелкните стрелку раскрывающегося списка Числовой формат (Общий) и выберите нужное значение.
-
При необходимости повторите шаги 2 и 3.
-
После завершения нажмите кнопку Сохранить.
Если в источнике данных Excel есть числа, отформатированные как процентные или денежные значения, они могут потерять форматирование во время слияния. Чтобы получить необходимый результат при слиянии и сохранить формат числовых данных в Excel, используйте DDE.
-
Откройте Word и выберите Файл > Параметры > Дополнительно.
-
В разделе Общие установите флажок Подтверждать преобразование формата файла при открытии.
-
Нажмите кнопку ОК.
-
На вкладке Рассылки щелкните Начать слияние > Пошаговый мастер слияния.
-
В области Слияние в разделе Выбор получателей щелкните Использовать существующий список.
-
В разделе Использовать существующий список нажмите кнопку Обзор и откройте отформатированную электронную таблицу.
-
В диалоговом окне Преобразование источника данных установите флажок Отобразить все, а затем выберите элемент Листы MS Excel с помощью DDE (*.xls) и нажмите кнопку ОК.
-
В диалоговом окне Microsoft Excel выберите Весь лист и нажмите кнопку ОК.
-
В диалоговом окне Получатели слияния нажмите кнопку ОК.
-
Выполните слияние для создания писем, сообщений электронной почты, наклеек или конвертов.
Совет: Можно сделать так, чтобы при каждом открытии файла данных в Word не выводились запросы. После подключения к списку рассылки выберите Файл > Параметры > Дополнительно. В разделе Общие снимите флажок Подтверждать преобразование формата файла при открытии.
Если вы создали список контактов в электронной таблице Excel, отформатируйте все почтовые индексы как текст во избежание потери данных. Если вы импортируете контакты из TXT- или CSV-файла в новую электронную таблицу, мастер импорта текста поможет вам отформатировать данные.
Шаг 1. Настройка источника данных в Excel
Если вы уже используете электронную таблицу Excel в качестве источника данных для слияния в Word, перейдите к шагу 2 в этой статье. Если вы импортируете контакты, например контакты Gmail, из TXT- или CSV-файла, мастер импорта текста поможет вам отформатировать данные в Excel.
-
Откройте Excel, а затем на вкладке Данные выберите Из текста.
-
Щелкните нужный файл в формате CSV или TXT и выберите команду Получить данные.
-
В мастере импорта текста нажмите кнопку Далее.
-
В разделе Разделители установите флажок для соответствующего элемента, разделяющего данные (например, знака табуляции или запятой). Нажмите кнопку Далее.
Совет: В области Предварительный просмотр выбранных данных можно увидеть, как будут выглядеть результаты в виде таблицы.
-
В области Предварительный просмотр выбранных данных выберите столбец с почтовыми индексами. В разделе Формат данных столбца выберите значение Текст.
-
При необходимости повторите действие 5, выбрав столбец, который вы хотите изменить, и нужный формат данных.
Примечание: Каждый раз, когда вы применяете формат данных к столбцу, в его заголовке отображается имя формата.
-
Нажмите кнопку Готово.
-
В диалоговом окне Импорт данных укажите, куда Excel следует поместить данные, и нажмите кнопку ОК.
Примечание: Сохраните электронную таблицу с новым именем файла.
Шаг 2. Настройка формата числовых данных в электронной таблице Excel
Чтобы не потерять при слиянии нули в значениях почтовых индексов, отформатируйте столбец с индексами как текст.
-
Откройте электронную таблицу и выберите столбец с почтовыми индексами.
-
На вкладке Главная выберите в списке Формат пункт Текстовый.
Теперь вы можете использовать эти данные для слияния.
Время на прочтение
6 мин
Количество просмотров 19K
Хотя в среднем для каждодневных задач автоматизация не требуется, бывают случаи, когда она может быть необходима. Создание множества диаграмм, рисунков, таблиц и отчётов может утомить, если вы работаете вручную. Так быть не должно. Специально к старту нового потока курса Fullstack-разработчик на Python делимся с вами кейсом постройки конвейера на Python, с помощью которого Excel и Word легко интегрировать: нужно создать таблицы в Excel, а затем перенести результаты в Word, чтобы практически мгновенно получить отчёт.
Openpyxl
Встречайте Openpyxl — возможно, одну из самых универсальных связок [биндингов] с Python, которая сделает взаимодействие с Excel очень простым. Вооружившись этой библиотекой, вы сможете читать и записывать все нынешние и устаревшие форматы Excel, то есть xlsx и xls.
Openpyxl позволяет заполнять строки и столбцы, выполнять формулы, создавать 2D и 3D диаграммы, маркировать оси и заголовки, а также предоставляет множество других возможностей, которые могут пригодиться.
И самое важное — этот пакет позволяет вам перебирать бесконечное количество строк и столбцов в Excel, тем самым избавляя вас от всех этих надоедливых вычислений и построения графиков, которые вам приходилось делать раньше.
Python-docx
Затем идёт Python-docx, этот пакет для Word — то же самое, что Openpyxl для Excel. Если вы ещё не изучили его документацию, вам, вероятно, стоит взглянуть на неё. Python-docx — без преувеличения один из самых простых и понятных мне наборов инструментов, с которыми я работал с тех пор, как начал работать с самим Python.
Python-docx позволяет автоматизировать создание документов путём автоматической вставки текста, заполнения таблиц и рендеринга изображений в отчёт без каких-либо накладных расходов. Без лишних слов давайте создадим наш собственный автоматизированный конвейер. Запустите Anaconda (или любую другую IDE по вашему выбору) и установите эти пакеты:
pip install openpyxl
pip install python-docx
Автоматизация Microsoft Excel
Сначала загрузим уже созданный лист Excel, вот так:
workbook = xl.load_workbook('Book1.xlsx')
sheet_1 = workbook['Sheet1']
Теперь переберём все строки в нашей таблице, чтобы вычислить и вставить значения мощности, умножив ток на напряжение:
for row in range(2, sheet_1.max_row + 1):
current = sheet_1.cell(row, 2)
voltage = sheet_1.cell(row, 3)
power = float(current.value) * float(voltage.value)
power_cell = sheet_1.cell(row, 1)
power_cell.value = power
Как только это будет сделано, мы используем рассчитанные значения мощности, чтобы сгенерировать линейную диаграмму, которая будет вставлена в указанную ячейку, код показан ниже:
values = Reference(sheet_1, min_row = 2, max_row = sheet_1.max_row, min_col = 1, max_col = 1)
chart = LineChart()
chart.y_axis.title = 'Power'
chart.x_axis.title = 'Index'
chart.add_data(values)
sheet_1.add_chart(chart, 'e2')
workbook.save('Book1.xlsx')
Извлечение диаграммы
Теперь, когда мы сгенерировали нашу диаграмму, нам нужно извлечь её как изображение, чтобы мы могли использовать её в нашем отчёте Word. Сначала укажем точное местоположение файла Excel, а также место, где должно быть сохранено изображение диаграммы:
input_file = "C:/Users/.../Book1.xlsx"
output_image = "C:/Users/.../chart.png"
Затем откройте электронную таблицу, используя следующий метод:
operation = win32com.client.Dispatch("Excel.Application")
operation.Visible = 0
operation.DisplayAlerts = 0
workbook_2 = operation.Workbooks.Open(input_file)
sheet_2 = operation.Sheets(1)
Позднее вы сможете перебирать все объекты диаграммы в электронной таблице (если их несколько) и сохранять их в указанном месте:
for x, chart in enumerate(sheet_2.Shapes):
chart.Copy()
image = ImageGrab.grabclipboard()
image.save(output_image, 'png')
pass
workbook_2.Close(True)
operation.Quit()
Автоматизация Microsoft Word
Теперь, когда у нас есть сгенерированное изображение диаграммы, мы должны создать шаблон документа, который в принципе является обычным документом Microsoft Word (.docx), сформированным именно так, как мы хотим: отчёт содержит шрифты, размеры шрифтов, структуру и форматирование страниц.
Теперь всё, что нам нужно сделать, — создать плейсхолдеры для сгенерированного нами контента, то есть табличные значения и изображения, и объявить их с именами переменных, как показано ниже.
Любой сгенерированный контент, включая текст и изображения, может быть объявлен в двойных фигурных скобках {{ variable_name }}. В случае таблиц вам нужно создать таблицу со строкой шаблона со всеми включёнными столбцами, затем нужно добавить одну строку вверху и одну строку ниже со следующей нотацией:
Первая строка:
{%tr for item in variable_name %}
Последняя строка:
{%tr for item in variable_name %}
На рисунке выше — имена переменных:
-
table_contents для словаря Python, в котором будут храниться наши табличные данные;
-
Index для ключей словаря (первый столбец);
-
Power, Current и Voltage для значений словаря (второй, третий и четвёртый столбцы).
Затем импортируем наш шаблонный документ в Python и создаём словарь, в котором будут храниться значения нашей таблицы:
template = DocxTemplate('template.docx')
table_contents = []
for i in range(2, sheet_1.max_row + 1):
table_contents.append({
'Index': i-1,
'Power': sheet_1.cell(i, 1).value,
'Current': sheet_1.cell(i, 2).value,
'Voltage': sheet_1.cell(i, 3).value
})
Далее импортируем ранее созданное в Excel изображение диаграммы и создадим другой словарь для создания экземпляров всех объявленных в документе шаблона переменных-заполнителей:
image = InlineImage(template,'chart.png',Cm(10))
context = {
'title': 'Automated Report',
'day': datetime.datetime.now().strftime('%d'),
'month': datetime.datetime.now().strftime('%b'),
'year': datetime.datetime.now().strftime('%Y'),
'table_contents': table_contents,
'image': image
}
И, наконец, визуализируем отчёт с нашей таблицей значений и изображением диаграммы:
template.render(context)
template.save('Automated_report.docx')
Результаты
И вот — автоматически сгенерированный отчёт Microsoft Word с числами и созданной в Microsoft Excel диаграммой. Мы получили полностью автоматизированный конвейер, его можно использовать, чтобы создать столько таблиц, диаграмм и документов, сколько вам потребуется.
Исходный код
import openpyxl as xl
from openpyxl.chart import LineChart, Reference
import win32com.client
import PIL
from PIL import ImageGrab, Image
import os
import sys
from docx.shared import Cm
from docxtpl import DocxTemplate, InlineImage
from docx.shared import Cm, Inches, Mm, Emu
import random
import datetime
import matplotlib.pyplot as plt
######## Generate automated excel workbook ########
workbook = xl.load_workbook('Book1.xlsx')
sheet_1 = workbook['Sheet1']
for row in range(2, sheet_1.max_row + 1):
current = sheet_1.cell(row, 2)
voltage = sheet_1.cell(row, 3)
power = float(current.value) * float(voltage.value)
power_cell = sheet_1.cell(row, 1)
power_cell.value = power
values = Reference(sheet_1, min_row = 2, max_row = sheet_1.max_row, min_col = 1, max_col = 1)
chart = LineChart()
chart.y_axis.title = 'Power'
chart.x_axis.title = 'Index'
chart.add_data(values)
sheet_1.add_chart(chart, 'e2')
workbook.save('Book1.xlsx')
######## Extract chart image from Excel workbook ########
input_file = "C:/Users/.../Book1.xlsx"
output_image = "C:/Users/.../chart.png"
operation = win32com.client.Dispatch("Excel.Application")
operation.Visible = 0
operation.DisplayAlerts = 0
workbook_2 = operation.Workbooks.Open(input_file)
sheet_2 = operation.Sheets(1)
for x, chart in enumerate(sheet_2.Shapes):
chart.Copy()
image = ImageGrab.grabclipboard()
image.save(output_image, 'png')
pass
workbook_2.Close(True)
operation.Quit()
######## Generating automated word document ########
template = DocxTemplate('template.docx')
#Generate list of random values
table_contents = []
for i in range(2, sheet_1.max_row + 1):
table_contents.append({
'Index': i-1,
'Power': sheet_1.cell(i, 1).value,
'Current': sheet_1.cell(i, 2).value,
'Voltage': sheet_1.cell(i, 3).value
})
#Import saved figure
image = InlineImage(template,'chart.png',Cm(10))
#Declare template variables
context = {
'title': 'Automated Report',
'day': datetime.datetime.now().strftime('%d'),
'month': datetime.datetime.now().strftime('%b'),
'year': datetime.datetime.now().strftime('%Y'),
'table_contents': table_contents,
'image': image
}
#Render automated report
template.render(context)
template.save('Automated_report.docx')
Вот мой репозиторий на GitHub с шаблоном документа и исходным кодом для этого туториала. А вот ссылка на курс Fullstack-разработчик на Python, который сделает из вас настоящего универсального солдата от кодинга.
Узнайте, как прокачаться и в других специальностях или освоить их с нуля:
-
Профессия Data Scientist
-
Профессия Data Analyst
-
Курс по Data Engineering
Другие профессии и курсы
В MS Word есть потрясающая функция, использование которой придется по вкусу всем, кому приходится работать с действительно большими документами, состоящими из разнородных данных, которые к тому же, имеют свойство обновляться. Это функция: настройка связи между документами.
Связь документа MS Word с данными из других файлов
К примеру, если вы ежеквартально делаете отчет о предприятии, вы наверняка сталкивались с такой проблемой: часть данных в отчете (о компании, вводные и т.п.) статичны и не меняются, но часть (табличные данные, диаграммы) приходится обновлять. И каждый раз приходится искать в 100 страничном документе — где находится эта чертова таблица, удалять старую и портить форматирование других разделов, затем открывать документ с новыми данными, копировать их и вставлять в тело основного документа. Вроде бы и не сложно, вроде бы и не часто, но утомляет.
А если делать что-то в этом духе приходится ещё и часто? О, вот тут нам и помогут связи между документами.
Работает это так — в вашем основном документе вы оставляете только статичную часть, которая не меняется. А в те места, где предусмотрены обновления, вставляются не сами данные, а только ссылки на другие документы, которые уже эти данные и содержат. И для обновления данных редактировать нужно теперь не весь ваш основной документ, а только компактные «малые» файлы с данными.
Как это выглядит? Я создаю три файла:
- Основной (DOC файл, сюда будет «собираться» содержимое из других документов)
- Дополнительный (DOC файл, здесь у меня будет только один заголовок с фамилиями, на случай если перечень фамилий изменится)
- Данные (XLS файл, здесь будет таблица с данными).
Структура файлов для демонстрации работы связей в MS Word
Я хочу, чтобы в «основном» файле была только какая-то вводная информация, а вот вся «динамика» подтягивалась из двух других файлов — сперва подключался заголовок из файла «Дополнительный», а затем ниже него вставлялась excel-таблица из файла «Данные». Предполагается, что все данные у меня уже введены, осталось только «собрать» готовый финальный документ.
Создание связи между текстовым документом Word, другими документами и excel-таблицами
Первым делом открываю «Основной» файл, и ниже «статичного» текста который у меня меняться не будет, ставлю курсор на новую строку. Перехожу на панель «Вставка», и в группе «Текст» нахожу кнопку «Объект». Здесь в выпадающем меню выбираю «Объект«.
Откроется окно «Вставка объекта», здесь необходимо перейти на вторую вкладку с неочевидным названием «Создание из файла» и осмотреться. Хотя название «создание из файла» как бы подразумевает создание нового файла, речь как раз таки о присоединении уже готового.
Обратите внимание на флажок «Связь с файлом» — он тут очень важен. Если его не ставить, содержимое выбранного файла вставится в ваш документ в том виде, в котором оно там есть сейчас и не будет обновляться. А вот если его поставить, то каждый раз при открытии вашего «общего» документа, MS Word будет проверять связанные файлы на предмет изменений, и если изменения были — обновит и содержимое общего документа. Так-то!
Итак, щелкаем на кнопку «Обзор» и выбираем нужный файл (в моем случае это DOC файл «дополнительный» со списком фамилий). Ставим галочку «Связь с файлом» и нажимаем «Ок.»
Если флажок стоит — связанные файлы будут обновляться, флажка нет — данные вставятся всего один раз
Как видите — текст из дополнительного файла успешно вставился в том виде, в котором я ввел его в исходный документ. Правда отредактировать его теперь нельзя — если щелкнуть по вставленному тексту курсором мыши, он отобразиться не как текст, а как объект.
Двойной щелчок на этом объекте откроет в режиме редактирования исходный файл, т.е. наш документ «Дополнительный».
Продолжаем. Под только что вставленным текстом заголовка, вновь ставлю курсор на пустую строку и снова вызываю окно «Вставка объекта». Указываю в качестве источника свой второй файл — excel-документ «Данные» с таблицей, ставлю флажок «Связь с файлом» и нажимаю «Ок».
Да, все тоже самое — содержимое документа XLS вставилось как объект, если щелкнуть по нему два раза, откроется Excel и предложить отредактировать нашу таблицу.
Как обновить данные в связанных документах MS Word и Excel
Самое время проверить самую «вкусную» часть — обновление данных. И как оказывается, здесь есть интересная особенность:
- Если просто открыть файл-донор («Данные» или «Дополнительный») для редактирования, внести изменения и закрыть их — в «Основном» не будет никаких изменений до его закрытия. Вот если его закрыть, а потом открыть снова — да, все данные автоматом обновятся.
- Если открыть файл-донор двойным щелчком из основного документа, то при внесении изменений и сохранении, обновленные данные отобразятся в «Основном» мгновенно, без необходимости закрывать и открывать его.
Что будет если документ с word- и excel- связями перенести в другое место, например в другую папку?
При открытии перемещенных документов со связями, система предложит вам восстановить связи
Ничего особенного не будет — если переносите в пределах того же компьютера, то при новом открытии этого файла, появится информационная табличка: «Документ содержит связи с другими файлами». Если нажать «Ок», система сама найдет эти файлы и обновит связи (при этом данные в вашем документе также обновятся).
Если же файл был перенесен на другой компьютер или одна из его «составляющих» была удалена с компьютера, ничего страшного тоже не произойдет — встроенный ранее текст будет отображаться как и прежде, просто перестанет обновляться, так как связь с файлом будет нарушена.
Александр Фролов, специально для сайта bussoft.ru