<р>2. Нажимайте Shift + Alt + Стрелка вниз, пока таблица не соединится с таблицей ниже.
Просмотр с вкладками и редактирование нескольких документов Word/книг Excel, таких как Firefox, Chrome, Internet Explore 10!
Возможно, вы привыкли просматривать несколько веб-страниц в Firefox/Chrome/IE и легко переключаться между ними, щелкая соответствующие вкладки. Здесь вкладка Office поддерживает аналогичную обработку, которая позволяет просматривать несколько документов Word или книг Excel в одном окне Word или окне Excel и легко переключаться между ними, щелкая их вкладки. Нажмите, чтобы получить бесплатную пробную версию Office Tab!
Объединение данных в один набор строк в документе MS Word
В этой статье описывается, как использовать VBA для подключения к запросу в MS Access и извлечения строк данных в отформатированную таблицу в MS Word. Документ Word будет включать вставленный отформатированный текст над таблицей и внутри таблицы. В этой статье будет рассмотрен базовый импорт одного набора данных в Word в качестве подготовки к следующей статье, в которой рассказывается, как автоматически добавить вычисленную строку итогов в таблицу, а также будет добавлен второй набор данных в тот же документ Word в отдельной отформатированной таблице. на следующей странице.
Использование VBA вместо слияния для строк данных
Небольшое примечание о слиянии почты в Word. Хотя можно получить один набор данных в Word с помощью функции каталога в слиянии и отобразить его в виде таблицы, есть несколько отличий, которые делают использование VBA хороший вариант для использования.
Чтобы начать с каталога, вы должны открыть ленту рассылок, начать слияние и выбрать каталог.
Если вы создадите таблицу в самом верху документа Word, вставите поля слияния в таблицу и нажмете «Готово и слияние» \ «Редактировать отдельные документы», вы получите таблицу, которая не имеет заголовков, но по-прежнему хорошо выглядит в Word.
Однако, если вы поместите таблицу в документе Word ниже самого верха документа Word и объедините ее, результирующая таблица будет выглядеть не так красиво.
Объединение строк данных в одну таблицу в Word
Приведенная ниже таблица была создана в документе Word (расширение .docm) и использовала VBA для автоматического подключения к запросу MS Access, а затем вставила текст заголовка, выделенный полужирным шрифтом, за которым следует отдельное предложение, а затем отформатированная таблица с заштрихованным заголовок с заполненными в нем отформатированными данными.
Создание источника данных для таблицы Word
Во-первых, начните с запроса в MS Access. Таблица, используемая в этом примере, взята из базы данных SQL Server AdventureWorks (фактически связанная таблица — представление) с именем vSalesPerson. Любая таблица, созданная в Access с некоторыми данными, также может быть использована. Код будет использовать таблицу из 3 столбцов для отображения результатов.
Добавление VBA в документ Word
Чтобы создать код в документе Word, откройте Word и нажмите ALT + F11. Отсюда вы можете вставить новый модуль для создания кода VBA.
Начните с присвоения имени подпроцедуре (эта процедура называется sPrintTable) и напишите код, чтобы назвать поля для строк и столбцов таблицы, а также набор записей и соединений ADODB для подключения к источнику данных в MS Access. Обязательно перейдите в Инструменты \ Ссылки, чтобы добавить библиотеку Microsoft ActiveX Data Objects 2.8 в проект, иначе при попытке запустить код будет выдано сообщение об ошибке.
Sub sPrintTable() Dim labelrows, labelcolumns, i As Integer Dim j As Integer, k As Integer, t As Integer Dim rsRows As Integer Dim rs As Integer ADODB.Recordset, rsCount As ADODB.Recordset Dim cn As ADODB.Connection Dim sqlGetTbl As String Dim sDataSource As String, sDataTable As String Dim sProvider As String
Set cn = New ADODB.Connection Set rs = New ADODB.Recordset Set rsCount = New ADODB.Recordset
Затем установите значения для источника данных и таблицы (в данном случае для запроса), а также поставщика для подключения и получения данных.
sDataSource = "C:\MS Access\Database3.accdb" sDataTable = "qrySalesPersonYTD"
sProvider = "Microsoft.ACE.OLEDB.12.0;" sDataSource = "'" & sDataSource & "'"
Установите и откройте соединение ADODB в коде. Затем установите и откройте каждый набор записей (один для количества строк в таблице и один для содержимого строки).
cn.Provider = sProvider cn.ConnectionString = "Источник данных SELECT COUNT([Sales ID]) FROM " & sDataTable rsCount.Open sqlGetTbl, cn, adOpenDynamic, adLockOptimistic
sqlGetTbl = "SELECT * FROM" & sDataTable rs.Open sqlGetTbl, cn, adOpenDynamic, adLockOptimistic
Форматирование страницы Word VBA
Следующий набор кода задает количество строк, возвращаемое из набора записей rsCount, и количество столбцов, равное 3 для таблицы. Он также устанавливает поля, а затем выбирает все содержимое в существующем документе Word, а затем удаляет его (см. выделенные строки кода ниже). Затем код устанавливает для шрифта значение Bold, Times New Roman и вводит в документ первые строки форматированного текста.
labelcolumns = 3 Если Len(labelcolumns) > 0 And Len(labelrows) > 0 Then ActiveDocument.PageSetup.HeaderDistance = InchesToPoints(0.5) ActiveDocument.PageSetup.FooterDistance = InchesToPoints (0,5) ActiveDocument.PageSetup.LeftMargin = InchesToPoints(0,75) ActiveDocument.PageSetup.RightMargin = InchesToPoints(0,75) Selection.WholeStory Selection.Delete Selection .Font.Bold = True Selection.Font.Name = "Times New Roman" Selection.TypeText Text:="Sales Year to Date"
Selection.TypeText Text:=Chr(11) & "За 2017 год" Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter Selection.ParagraphFormat.LineUnitAfter = 1
Selection.TypeParagraph Selection.Font.Name = "Times New Roman" Selection.Font.Size = "9" Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft Selection.Font.Bold = False
Следующий набор кода создает таблицу, размеры столбцов и добавляет к ней границы. Обратите внимание, что NumRows в ActiveDocument.Tables.Add равен «labelrows + 1» — это означает добавление 1 дополнительной строки в качестве заголовка в таблицу, которая будет заполнена именами полей из источника данных запроса MS Access.
Если не rs.EOF, то ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=labelrows + 1, NumColumns:= _ labelcolumns, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _ wdAutoFitFixed ActiveDocument.Tables(t).Columns.PreferredWidth = InchesToPoints(5) ActiveDocument.Tables(t).Columns(2).PreferredWidth = InchesToPoints(10) ActiveDocument.Tables(t).Columns(3).PreferredWidth = InchesToPoints(10)
ActiveDocument.Tables(t).Rows.Height = InchesToPoints(0,3) ActiveDocument.Tables(t).Borders(wdBorderLeft).Visible = True ActiveDocument.Tables(t).Borders( wdBorderRight).Visible = True ActiveDocument.Tables(t).Borders(wdBorderTop).Visible = True ActiveDocument.Tables(t).Borders(wdBorderBottom).Visible = True ActiveDocument. Tables(t).Borders(wdBorderHorizontal).Visible = True ActiveDocument.Tables(t).Borders(wdBorderVertical).Visible = True End If
Приведенный ниже код выполняет итерацию по строкам данных и заполняет только что созданную таблицу данными набора записей из источника записей ADODB с именем rs. Обратите внимание, что когда количество строк равно 1 (когда j = 1), существует дополнительный код для заполнения имен полей в строке заголовка. Также обратите внимание, что в rs.Fields используется массив с нулевым начальным значением, поэтому столбцы имеют значение k - 1.
If Not rs.EOF And Not IsNull(rs.Fields(1)) Then For j = 1 To labelrows
Для k = 1 Чтобы пометить столбцы
ActiveDocument.Tables(t).Cell(j, k).Range.InsertBefore rs.Fields(k - 1).Name ActiveDocument.Tables(t).Cell(j, k).Range. Shading.BackgroundPatternColor = wdColorGray15 ActiveDocument.Tables(t).Cell(j, k).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
ActiveDocument.Tables(t).Cell(j + 1, k).Range.InsertBefore rs.Fields(k – 1)
Selection.EndOf Unit:=wdParagraph, Extend:=wdExtend Selection.Range.Font.Bold = True Selection.Range.Font.Underline = wdUnderlineSingle
Еще If Len(Trim(rs.Fields(k - 1))) > 0 Then ActiveDocument.Tables(t).Cell(j + 1, k).Range.InsertBefore rs .Поля(k - 1)
'Этот оператор Select обеспечивает условное форматирование для столбцов: 'Столбцы 1 и 2 выравниваются по центру, столбец 3 выравниваются по правому краю.
Выберите случай k Случай 3: ActiveDocument.Tables(t).Cell(j + 1, k).Range.ParagraphFormat.Alignment = wdAlignParagraphRight Случай 1, 2: < br />ActiveDocument.Tables(t).Cell(j + 1, k).Range.ParagraphFormat.Alignment= wdAlignParagraphCenter
Следующий k rs.MoveСледующий Следующий j
Если не rs.EOF, то rsRows = ActiveDocument.Paragraphs.Count Selection.Move Unit:=wdParagraph, Count:=rsRows Selection.InsertBreak Type:=wdPageBreak >Конец, если
Selection.MoveDown Unit:=wdLine, Count:=labelrows + 2 Selection.TypeParagraph
Запуск кода VBA для импорта строк данных в Word
В окне Visual Basic в Word вы можете выделить Sub и нажать F5 или щелкнуть зеленую стрелку на панели инструментов, чтобы запустить его. После этого у вас будет идеально отформатированный документ Word со строками данных.
Слияние писем — это функция Microsoft Word, позволяющая быстро и легко создавать такие документы, как письма, этикетки и конверты. Эффект слияния расширяет стандартную функциональность слияния и превращает ее в полноценное решение для создания отчетов, позволяющее создавать сложные документы, такие как отчеты, каталоги, инвентарные описи и счета.
Вывод операции слияния не ограничивается форматом документа Microsoft Word. Вы можете сохранить объединенный документ в файл любого из следующих форматов:
- Переносимый формат документов Adobe (PDF)
- HTML
- Microsoft Word (DOC, DOCX, DOCM)
- Открыть текст документа (ODT)
- Обычный текст (TXT)
- Расширенный текстовый формат (RTF)
- Спецификация бумаги XML (XPS)
Базовый сторонний компонент, на который мы полагаемся при слиянии, уязвим для сложностей в верхних и нижних колонтитулах Word. Поэтому, когда вы выполняете слияние Word, делайте ваши верхние и нижние колонтитулы максимально простыми!
Основные шаги
Выполните следующие действия, чтобы выполнить слияние почты Word.
Шаг 1. Создайте XML-схему, определяющую структуру, содержимое и семантику XML-документа, используемого для предоставления данных во время операции слияния. Если данные импортируются из внешнего источника, вам не нужно создавать XML-схему. То есть XML-данные можно импортировать непосредственно в источник данных General File.
Шаг 2. Используйте Microsoft Word для создания и оформления документа Word, называемого шаблоном. Обратите внимание, что документ не обязательно должен быть шаблоном Microsoft Word (.dot/.dotx), это может быть обычный документ (.doc/.docx). Затем вы вставляете в шаблон несколько специальных полей, называемых полями слияния, в те места, где вы хотите вставить данные из источника данных.
Шаг 3. Добавьте источники данных, которые могут содержать XML-документ, шаблон и выходной документ. XML-документ можно импортировать из файла или создать XML-документ, назначив значения из других источников данных.
Шаг 4. Включите в свою задачу, веб-службу или агент эффект слияния, описывающий, какой шаблон использовать, источник данных, содержащий XML-данные, источник данных, в который должен быть записан объединенный документ, и формат файла для объединенный документ. Подробнее см. здесь.
Вы можете назначить повторяющиеся области слияния в документе или вставить специальные поля слияния, которые позволяют вставлять другое содержимое, например изображения. В зависимости от того, как вы настроили поля слияния и повторяющиеся области внутри документа, документ будет увеличиваться для размещения нескольких объектов в вашем источнике данных. Используя повторяющиеся области слияния, вы можете указать части внутри документа, которые будут повторяться для каждого объекта в источнике данных. Например, если вы пометите строку таблицы как повторяющуюся область, строка будет повторяться для каждого объекта в источнике данных, что приведет к динамическому увеличению таблицы для размещения всех ваших данных.
Объединить поля
Поля слияния используются в качестве заполнителей для данных, которые вставляются во время операции слияния. Поле слияния состоит из кодов полей и переключателей полей.
Коды полей отображаются между фигурными скобками или фигурными скобками ( ) и представляют собой текст-заполнитель, который показывает, где будет отображаться указанная информация из вашего источника данных. Код поля включает символы поля, тип поля и инструкции.
Переключатель – это специальная инструкция, которая при размещении в поле приводит к выполнению определенного действия. Например, вставка переключателя *Caps в поле означает, что первая буква каждого слова в результате поля будет заглавной.
MERGEFIELD – это имя поля
*Ответственный* — это текст требуемого имени поля инструкции. Имя поля представляет элемент в вашем XML-документе.
\b — необязательный переключатель для текста, который предшествует результату поля (Контакт).
* Верхний — необязательный переключатель, указывающий, что имя отображается заглавными буквами.
Если значением ответственного элемента в XML-документе является Дэгни Таггарт, результатом поля будет
Контактное лицо: ДЭГНИ ТАГГАРТ
Вы можете переключаться между именами полей и кодами полей, используя сочетание клавиш Alt+F9.
Специальные коды полей
Эффект слияния вводит набор специальных кодов полей, которые берут стандартное слияние и продвигают его на много шагов вперед. Коды включены в обязательное имя поля инструкции поля слияния с суффиксом двоеточия. Например, чтобы вставить изображение, расположенное в элементе с именем Photo, имя поля будет
Изображение: специальный код поля, который указывает эффекту вставить изображение.
Фото – это имя элемента в XML-документе, содержащего изображение.
Для некоторых кодов полей требуется совпадающая пара полей слияния, чтобы отметить начало и конец инструкции. Например, чтобы отметить начало области слияния, вставьте поле слияния с именем TableStart:имя-элемента, где имя-элемента соответствует элементу сложного типа. в вашем XML-документе. Чтобы отметить конец области слияния, вставьте другое поле слияния с именем TableEnd:имя-элемента.
В таблице ниже приведены доступные коды полей:
Книги: Заголовок-1, Заголовок-2, Заголовок-3. | < /таблица>
Обратите внимание: если текст Книги: помещен в тот же абзац, что и TableStart:Book, он повторяется один раз для каждой книги, например:
Книги: Title-1 Книги: Title-2 Книги: Title-3 | таблица>
Эти коды полей не должны располагаться в том же абзаце, что и TableStart: или TableEnd:.
Это гарантирует, что заголовок всегда будет начинаться с новой страницы.
Заголовок 1 Заголовок 2 Заголовок 3 |
Заголовок | Цена | Заголовок 1 | 9,99 | Заголовок 2 | 8,99 | Заголовок 3 | 7.99 |
Обратите внимание, что пустой одиночный абзац в начале повторяющейся области автоматически удаляется, чтобы избежать нежелательных пустых строк. Чтобы оставить абзац пустым, вставьте в абзац пробел (или любой другой символ).
| URL:имя-элемента | Вставляет URL-адрес, расположенный в поле, заданном имя-элемента. тд> |
Форматирование поля слияния
Если вы хотите отформатировать объединенные данные, вам необходимо соответствующим образом отформатировать поля слияния в документе.
Изменить форматирование текста * В шаблоне выберите поле, содержащее информацию, которую вы хотите отформатировать, включая окружающие символы поля слияния ( >).
В меню "Формат" выберите команду, например "Шрифт" или "Абзац", и выберите нужные параметры.
В шаблоне выберите поле, содержащее информацию, которую вы хотите отформатировать, включая окружающие символы поля слияния ( >).
Использование переключателей полей для указания форматирования
Microsoft Word поддерживает переключатели, управляющие форматированием чисел и дат. В Microsoft Word нажмите клавиши ALT+F9, чтобы отобразить коды полей в шаблоне, а затем добавьте переключатели в поля слияния.
Вы можете управлять форматом чисел и дат, используемым во время операции слияния. То есть, если вы добавите переключатель числового изображения, включающий пробел в качестве символа группировки цифр и запятую в качестве десятичного разделителя, вы должны убедиться, что числовые данные интерпретируются в соответствии с переключателем. Для этого в поле Формат чисел и дат в настройках эффекта выберите языковые настройки для использования.
Обратите внимание, что настройки формата основаны на настройках по умолчанию для выбранного языка и не зависят от настроек, указанных в языковом стандарте Windows (набор информации о предпочтениях пользователя, связанной с языком пользователя, средой и/или культурными традициями). .
Подготовка шаблона
Чтобы подготовить шаблон для выполнения простого слияния, вам необходимо указать регион слияния для всех полей слияния в шаблоне. Область слияния необходима, даже если источник данных содержит только один объект. Имя области соответствует имени элемента верхнего уровня в XML-документе, представляющем сложный тип. Между этими полями маркировки поместите поля слияния, соответствующие элементам простого типа в документе XML, расположенному под элементом сложного типа.
Чтобы отметить начало области слияния, вставьте поле слияния с именем TableStart:имя-элемента. Чтобы отметить конец области слияния, вставьте другое поле слияния с именем TableEnd:имя-элемента.
Чтобы вставить поля слияния, выполните следующие действия:
- На вкладке "Вставка" нажмите "Экспресс-блоки", а затем нажмите "Поле".
- Выберите MergeField в списке категорий и введите имя поля.
В приведенном ниже примере данные объединены для одного заказа:
> > Заказчик: > Дата: > Общая сумма: > > | таблица>
и результат будет выглядеть так:
Если документ XML содержит более одного экземпляра элемента, все содержимое документа, включенное в область слияния, автоматически повторяется для каждого элемента в документе XML.
Если XML-документ в приведенном выше примере содержит несколько заказов, вывод будет выглядеть следующим образом:
Чтобы перечислить заказы в таблице Word, вы должны поместить TableStart и TableEnd в одну и ту же строку таблицы:
Порядок | Клиент | Дата | Общая сумма | > > | > | > | > > |
Отмечая регион, соблюдайте следующие правила:
Поля - TableStart и TableEnd должны находиться в одном и том же разделе документа.
- При использовании внутри таблицы элементы TableStart и TableEnd должны находиться в одной и той же строке таблицы.
- Области слияния могут быть вложены друг в друга.
- Области слияния должны быть правильно сформированы, то есть всегда должны быть соответствующие элементы TableStart и TableEnd с одинаковым именем элемента.
Вложенные области слияния
Большинство данных в реляционных базах данных являются иерархическими, например счет-фактура или заказ, содержащий несколько элементов. Эффект слияния позволяет вкладывать друг в друга области слияния в документе, чтобы отразить способ вложения данных.
Вложенные области слияния – это как минимум две области, в которых одна полностью определена внутри другой. В документе это выглядит так:
Как и в стандартном слиянии, каждый регион содержит данные из одного сложного элемента в вашем XML-документе. Отличие вложенного слияния состоит в том, что область Order имеет вложенную в нее область Item. Это делает область Order родительской, а область Item — дочерней. Когда данные объединяются, регионы действуют так же, как отношения родитель-потомок, где данные для каждого Заказа связаны с одним или несколькими элементами Item.
Даже если данные иерархичны, можно напрямую перечислить дочерние элементы, опустив поля слияния для родителя. В документе это выглядит так:
Повторение данных в таблице по горизонтали
Для горизонтального повторения данных в таблице с определенным количеством столбцов используйте следующую конструкцию:
Тогда результат будет выглядеть следующим образом
Элементы | tr> Гавайская пицца | Картофель фри | Куриные крылышки | Пицца барбекю | 1,5 л колы |
Поле, которое не является полем слияния, а просто обычным полем, можно вставить, нажав CTRL+F9. Переключите коды полей, нажав SHIFT+F9, чтобы просмотреть коды полей.
Повторение данных по горизонтали без таблицы
Простые горизонтально повторяющиеся списки можно легко объединить, как описано для кодов полей NoBreakStart: и NoBreakEnd:. Однако для более сложных данных и изображений, вероятно, лучше подойдет более продвинутая конструкция. Например:
Примените необходимое форматирование к текстовому полю и границам таблицы для достижения желаемого результата. Установив ширину и высоту для ячейки изображения, размер изображения будет ограничен, а интеллектуальная настройка позволит всем изображениям иметь одинаковую ширину или одинаковую высоту.
Объединение отчетов
Отчеты могут быть включены в слияние, например отчеты о продажах и тенденциях продаж, включенные в карточку сотрудника, показанную ниже.
Чтобы включить отчеты в слияние, перейдите на вкладку "Другие источники данных слияния" и нажмите кнопку "Добавить".
Вы должны указать имя поля для каждого отчета. Вставьте поля слияния в свой шаблон и используйте имя поля для ссылки на отчет, используя специальные коды полей.
Обратите внимание, что имя поля не нужно определять как элемент в вашей XML-схеме. Это означает, что XML-схемы, используемые для слияния, могут быть ограничены бизнес-данными, в то время как отчеты и их фильтрация поддерживаются как часть настройки операции слияния. Нажмите кнопку Зарезервированные имена полей, чтобы увидеть, какие имена полей используются в схеме и поэтому не могут использоваться в качестве имени поля отчета.
Чтобы установить фильтры данных, выберите отчет и нажмите кнопку "Изменить". В диалоговом окне "Объединить поле" выберите источник данных и нажмите кнопку "Изменить", чтобы задать фильтр.
В диалоговом окне "Объединить поле" вы также можете изменить имя поля и выбрать формат файла.
Установите флажок Отклонить пустой вывод, если отчет не следует объединять с документом, если он не содержит данных. Например. чтобы избежать слияния пустой гистограммы с документом. Вы можете комбинировать это со специальными кодами полей HideIfEmptyStart, HideIfEmptyEnd, ShowIfEmptyStart и ShowIfEmptyEnd для более детального управления содержимым вашего документа.
Внимание! Изменения включенных отчетов и их фильтров данных не требуют развертывания модели приложения, поскольку выбранные конечные пользователи могут изменить эту настройку.
Скрыть область фильтра в объединенных отчетах
- В меню "Файл" отчета нажмите "Параметры страницы", а затем перейдите на вкладку "Содержимое".
- В списке "Область фильтра" выберите "Не отображается".
Изменить доступ для выбранных конечных пользователей
Вы можете разрешить выбранным конечным пользователям изменять отчеты, включаемые в слияние, и способ фильтрации этих отчетов. Чтобы предоставить конечному пользователю такой доступ, должны быть выполнены следующие требования:
- У пользователя должны быть разрешения на изменение вашей задачи слияния. Дополнительные сведения см. в разделе Безопасность и конфиденциальность.
- В настройках задачи на вкладке "Общие" установите флажок "Включить изменение пользователями без развертывания версии".
Конечный пользователь может изменить задачу на панели действий или в Genus Studio. Дополнительную информацию см. в разделе Изменение объединения отчетов.
Объединение файлов Microsoft Excel
Файлы Microsoft Excel могут быть включены в слияние в виде таблиц. Вы должны определить файл Excel как элемент схемы XML. Элемент должен быть типа base64Binary. При вводе данных в XML-файл из общего файла с помощью функции «Создать/изменить объекты» необходимо использовать поле «Данные».
Кроме того, вы можете добавить файлы непосредственно в задачу "Объединить данные в документ".
- Выберите вкладку "Другие источники данных для слияния".
- На кнопке "Добавить" нажмите , а затем выберите Файл Microsoft Excel.
- Выберите источник данных, в который вы импортировали данные из файла Microsoft Excel, и введите имя поля в поле Имя поля.
ол>р>
Вы должны указать Имя поля для каждого файла. Вставьте поля слияния в свой шаблон и используйте имя поля для ссылки на ваш файл, используя специальные коды полей XL.
Читайте также:
| | |