Создать программу для текстового документа word

Студворк — интернет-сервис помощи студентам

Доброго времени суток уважаемые форумчане!
Возникла идея, создать программу по работе с бланками в MS Office для облегчения себе жизни. В общем, в последнее время работаю с парой конкретных бланков в Word. Стало весьма неудобно каждый раз заполнять бланк А4 с нуля. Возникла мысль частично это автоматизировать.
Рассмотрим задумку на простеньком примере. Скажем у меня имеется подобный документ:
ФИО______________________
Дата рождения: день_____ месяц______ год______

Каждый раз в поля впечатываются (!) данные. Мне необходимо реализовать следующее:
Как пример вот такой схематический рисунок

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

.Имеем интерфейс программки, в которой поля «ФИО», «Дата рождения», «день», «месяц», «год» — статичные, неизменные. Через интерфейс программы их редактировать нельзя. В поле под/возле ФИО вводятся данные. Возле «день», «месяц», «год» — поля с выбором из готовых элементов (чтобы не вводить вручную скажем 21 апреля 1856). Далее, когда бланк заполнен, необходимо чтобы он сохранялся в в Word-овский документ (.doc или .docs) так же, как он сверстан в интерфейсе программы и чтобы в итоге получалось следующее в интерфейсе программы

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

и такое при открытии в Word

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

. Далее необходима реализация возможности открытия уже сверстанного документа в программе для редактирования (на случай ошибки) с повторным сохранением с перезаписью. Так же возможность вывода на печать.
Собственно, хотелось бы получить дельные советы и подходящий справочный материал (книги, туториалы, видео). Может у кого-либо был опыт реализации подобного. Буду весьма благодарен!

P.S. 1С, стандартные средства верстки документа Word и прочие программы для верстки не предлагать. Необходимо именно создание программы по работе с бланками. Все данные заполняются шрифтом, заданным по умолчанию в программе.

Всем добра!

Данная статья посвящена способам создания программ, работающих в среде Word 97 и Word 2000. К сожалению, лишь отдельные пользователи знают и применяют возможности Word для автоматизации работы с помощью макросов, и уж совсем единицы используют этот редактор для разработки программных продуктов. Подобная ситуация отчасти объясняется несколько пренебрежительным отношением многих профессиональных разработчиков программ к Visual Basic for Application — языку программирования, встроенному во все компоненты пакета Office 97. А ведь он позволяет создавать удачные программы и для упрощения работы с Office, и для проведения расчетов, и для обработки данных. Причем создавать такие продукты смогут даже начинающие, и им не потребуются ни руководства, ни дополнительное обучение. Нужно будет лишь наблюдать, исследовать, ставить эксперименты и делать выводы, а все это помогает выработать навыки научного подхода к различным явлениям.

Данная статья посвящена способам создания программ, работающих в среде Word 97 и Word 2000. К сожалению, лишь отдельные пользователи знают и применяют возможности Word для автоматизации работы с помощью макросов, и уж совсем единицы используют этот редактор для разработки программных продуктов. Подобная ситуация отчасти объясняется несколько пренебрежительным отношением многих профессиональных разработчиков программ к Visual Basic for Application — языку программирования, встроенному во все компоненты пакета Office 97. А ведь он позволяет создавать удачные программы и для упрощения работы с Office, и для проведения расчетов, и для обработки данных. Причем создавать такие продукты смогут даже начинающие, и им не потребуются ни руководства, ни дополнительное обучение. Нужно будет лишь наблюдать, исследовать, ставить эксперименты и делать выводы, а все это помогает выработать навыки научного подхода к различным явлениям.

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

Создание программы

В Visual Basic есть уникальное средство разработки программ — «Запись макросов», позволяющее легко писать простые макросы для Word, не используя описания языка. При работе в Word можно включать специальный режим записи макросов, при котором все действия в редакторе будут автоматически «переводиться» на Visual Basic и сохраняться в текстовом виде. Записанную программу затем можно изучить, чтобы разобраться с синтаксисом и устройством языка, а также необходимым образом его модифицировать.

Если требуется записать макрос, надо выбрать из меню «Сервис» пункт «Макросы», а из ниспадающего меню — пункт «Начать запись».

Документы Word могут содержать программы, которые можно вызвать, отметив определенную кнопку на Панели инструментов, нажав указанное сочетание клавиш, выбрав заданный пункт меню либо с помощью другого ПО. Причем можно даже сочетать разные способы вызова, поэтому перед записью макроса предлагается назначить какой-то один. Однако это можно сделать и позже в диалоговом окне «Настройка». После нажатия кнопки ОК в окне Word появится панель «Запись макроса». Теперь все действия пользователя тщательно протоколируются, хотя и с определенными ограничениями: невозможно выделить текст мышью (для этого следует воспользоваться клавишами <Стрелка вправо> + ), не работает контекстное меню при нажатии правой кнопки мыши и т. д.

Затем нужно нажать слева на панели кнопку «Остановка записи». Если хотите прервать работу и выделить какой-нибудь объект мышью, то выберите на этой панели правую кнопку «Пауза». Чтобы продолжить процесс записи, нажмите ее еще раз.

Редактор Visual Basic

Этот редактор можно вызвать либо из меню «Сервис?Макросы?Редактор Visual Basic», либо нажав клавиши +.

В него входят «Менеджер проектов», «Окно свойств», «Окно отладки», «Окно контрольного значения», «Окно локальных переменных», «Стек вызова», «Окно просмотра объектов», окна текста программ и дизайна форм.

Программы на Visual Basic хранятся только в документах и шаблонах Word. Когда они содержат макросы, их называют проектами. В окне «Менеджера проектов» отображаются названия всех доступных проектов, в состав которых входят открытые документы и шаблоны, в том числе и загружаемые при старте Word. Кроме того, там всегда имеется шаблон Normal.dot со всеми сохраненными макросами.

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

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

Компоненты проекта делятся на пять больших категорий.

1. Microsoft Word объекты. Здесь есть только один объект, называющийся ThisDocument, контекстное меню которого появляется при нажатии правой кнопки мыши.

Для перехода к тексту или графике нужно выбрать пункт «Объект» (для Normal.dot недоступен). В документ Word можно вставить кнопки, поля ввода текста, поля выбора вариантов и т. д. Тогда после выбора пункта «Программа» контекстного меню объекта ThisDocument можно написать программу, которая будет выполняться нажатием соответствующей кнопки или введением текста. К ее написанию можно перейти и из контекстного меню самого объекта — выделите его, нажмите правую кнопку мыши и выберите пункт «Исходный текст». (В Microsoft Excel в качестве объектов представлены и сама рабочая книга Excel в целом и все ее листы по отдельности.)

2. Модули, или собственно макросы. Щелкнув дважды мышью на имени модуля, можно получить доступ к тексту программы или приступить к ее созданию. Программы, записанные с помощью средства записи макросов, хранятся в модуле NewMacros шаблона Normal.dot.

Чтобы сформировать новый модуль, нужно выбрать пункты «Вставить?Модуль», в окне программы написать Sub, далее назначить «уникальное имя программы» и нажать . После этого Word сам добавит фразу End Sub. Между этими двумя фразами и должен находиться текст основной части программы.

3. Модули класса. Класс — это тип объектов, определяемых программистом; данное понятие играет очень важную роль в программировании. Например, надо написать программу, работающую с электронными версиями классных журналов в школе, в каждом из которых есть подразделы: список учеников, таблица оценок, система вычисления средней оценки каждого ученика, список предметов и т.д. Можно, конечно, с помощью Visual Basic описать устройство каждого классного журнала, но тогда при однотипных действиях с группой журналов (в частности, при подсчете среднего балла оценок всех учащихся 7-х и 8-х классов) придется включать в текст программы множество операций с каждым компонентом журнала. А при добавлении нового журнала придется сочинять фрагмент программы, создающий список учащихся, предметов и др. Все это усложнит программу и потребует значительных усилий. Поэтому в языке введено понятие класса, т. е. нового типа объектов. Так, можно создать класс «Журналы» и описать в его модуле содержимое объектов этого класса: список учеников (Public Ученики(40) As String), предметов (Public Предметы(20) As String) и пр.

Теперь, чтобы создать новый объект класса «Журналы», не придется заниматься утомительным описанием новых списков учеников и предметов — достаточно будет в одной строке ввести команду «Объявить новую переменную класса Журналы» (Dim Журнал25 As Журналы) и присвоить нужные значения его соответствующим разделам (Журнал25.Ученики(1)=«Андреев»). Кроме того, в модуле класса можно написать программу вычисления средней оценки всех учащихся и, если необходимо, вызывать ее одной командой.

4. Формы — это диалоговые окна программ, которые можно разработать по своему вкусу. Чтобы в проект добавить форму, нужно выбрать пункты «Вставка? UserForm». Будет создано пустое диалоговое окно, в которое можно помещать кнопки, картинки, текст и многое другое.

5. Ссылки. Программы можно запускать и по вызову из другой программы, однако это делается только из загруженного в Word шаблона или документа. Если загружать проект постоянно нецелесообразно (например, подобный вызов используется достаточно редко), то лучше установить на него ссылку простым перетаскиванием значка шаблона в окно «Менеджера проектов», чтобы открыть доступ к программам.

Окно текста программ и дизайна форм — основное рабочее место на Visual Basic, здесь пишется текст программ и разрабатываются диалоговые окна. Чтобы открыть его для какого-либо компонента проекта, надо просто два раза щелкнуть на нем мышью или выбрать пункт «Программа». Редактор Visual Basic — дружественный, он постоянно подсказывает, какие параметры имеет та или иная команда и как надо корректно ее написать. Например, если набрать команду MsgBox (вызывает на экран диалоговое окно, в частности, «Сохранить изменения в документе?») и ввести затем открывающую круглую скобку, то над курсором сразу же появится подсказка. В ней содержится информация о синтаксисе данной команды, т. е. говорится, как и какие нужно задавать параметры в тексте программы, например, число кнопок, вид значков и звук.

Язык Visual Basic — объектно-ориентированный, значит, очень многие его команды имеют формат, отличный, скажем, от формата языков программирования Basic или Pascal. Типичная команда на Visual Basic выглядит так: <Объект>.<Объект, входящий в первый объект>.<…>.<Тот объект, с которым нужно произвести действие>.<Собственно действие>. Иными словами, каждая команда пишется как бы «с конца»: сначала определяется то, над чем надо произвести действие, т. е. объект, а уже затем само действие — метод. Разделитель компонентов команды — точка. Например, по команде Application.ActiveDocument.PageSetup.Orientation = wdOrientLandscape устанавливается альбомная ориентация листа документа. Такой же вид имеет и команда получения информации об ориентации листа, которая выглядит так: p = Application.ActiveDocument.PageSetup.Orientation.

После ее выполнения значение переменной р будет wdOrientLandscape или wdOrientPortrait соответственно. При написании команд редактор Visual Basic постоянно подсказывает следующий шаг — стоит только написать в тексте программы слово Application и поставить точку, как сразу появятся возможные варианты продолжения.

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

Чтобы не вводить слова целиком, можно использовать команду завершения слова, например, вместо Application набрать Appli и нажать +<Пробел>. Редактор допишет слово до конца сам или предоставит возможность выбрать его, если нельзя однозначно определить по первым буквам. Предположим, если программист не воспользуется подсказкой, введет всю команду вручную и допустит в элементарном синтаксисе ошибку, то редактор не позволит ему работать дальше, выдав соответствующее сообщение.

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

Еще одно достоинство Visual Basic — прекрасная справочная система. Поставив курсор мыши на любую команду (или название объекта) и нажав клавишу , можно получить подробную справку о том, зачем она нужна и каков ее синтаксис. Кроме того, можно познакомиться с примером ее использования и, если необходимо, даже скопировать. (В справке Visual Basic for Application очень часто приводятся фрагменты кода программ, иллюстрирующие использование той или иной команды; скопировав, можно их изменить и использовать в своей программе.) К сожалению, большая часть справки приведена на английском языке.

Дружественность редактора позволяет самостоятельно изучать его — достаточно записать несколько макросов и с помощью справки изучить назначение каждой команды. Закомментировать, т. е. исключить из выполнения можно любую команду, поставив перед ней знак апострофа. Кроме того, после него можно написать пояснения к соответствующей части программы (все комментарии даются в Visual Basic зеленым цветом).

Если дважды щелкнуть мышью на названии формы, то откроется окно «Дизайна форм».

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

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

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

Окно «Просмотр объектов», вызываемое с помощью клавиши или из меню «Вид», содержит краткий справочник, где приведены свойства и методы (действия и команды) объектов Visual Basic.

На панели инструментов «Правка» этого редактора есть соответствующие пункты для вызова описанных выше функций. Так, «Список свойств/методов» позволяет увидеть продолжение любой команды, а «Сведения» — выдает информацию о переменной, выделенной в данный момент. В редакторе Visual Basic, как и в Word, можно переходить к соответствующим его частям, поместив закладки в текст программы.

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

Продолжение в следующем номере.

Орлов Антон Александрович,

antorlov@inbox.ru, http://antorlov.chat.ru.

Автор статьи

Сергей Андреевич Дремук

Эксперт по предмету «Программирование»

Задать вопрос автору статьи

Определение 1

Microsoft Office – одна из самых популярных программных систем, используемых во всем мире.

Трудно найти компьютер, на котором не был бы установлен текстовый редактор Word. Представляя собой систему приложений, тесно связанных друг с другом, MS Office открывает перед своими пользователями самый широкий спектр возможностей.

Мощнейшим средством создания приложений в MS Office стал язык Visual Basic for Application (VBA). Он пришел на смену языкам макропрограммирования, которые обычно включались в приложения.

Определение 2

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

Замечание 1

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

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

В MS Word создается много документов типа справка, расписка, докладная записка и так далее. Эти документы имеют постоянную и переменную части. Создание таких документов можно упростить, используя язык программирования VBA.

«Создание приложений на языке VBA для MS WORD» 👇

Создание текстового документа

Рассмотрим пример создания справки в MS Word 2007.

Создадим документ Word и сохраним его с именем spravka.docx.

Замечание 2

В случае отсутствия на ленте вкладки Разработчик создайте её с помощью команды — Параметры Word-Личная настройка. В группе Основные параметры работы с Word установите флажок в пункте Показать вкладку Разработчик на ленте.

Создать макрос1 с помощью макрорекордера. Макрос1 создает текст документа «СПРАВКА»:

  • выполнить команду Разработка, Макрос, Запись макроса;
  • в поле Имя макроса оставить Макрос1. В поле Макрос доступен для: выбрать имя данного документа spravka.docx. Нажать кнопку ОК;
  • набрать текст документа «СПРАВКА» с нужными параметрами абзаца и шрифта;
  • остановить запись макроса кнопкой Останов в закладке Код-Разработчик.

Проверить работу макроса запустив его на исполнение командой: Разработчик, Макросы, Макрос1, Выполнить.

Текст документа:

Создание приложений на языке VBA для MS WORD. Автор24 — интернет-биржа студенческих работ

Создадим Макрос2 с помощью макрорекордера. Макрос2 выполняет очистку содержимого документа (Выделить все ${Ctrl+A}$, клавиша Delete).

Создадим панель быстрого доступа для spravka.docx с кнопками для запуска макросов.

Для этого необходимо:

  • выбрать пункт меню Параметры Word-Настройка;
  • в окне Настройка панели быстрого доступа и сочетаний клавиш на вкладке Выбрать команду из выбрать пункт Макросы, а на вкладке Настройка панели быстрого доступа выбрать пункт Для Spravka;
  • в том же диалоговом окне команд Макросы выделить команду Макрос1 и добавить в панель быстрого доступа для документа Spravka. Аналогично добавить команду Макрос2;
  • изменить надпись или значок на кнопке, назначенной макросу Изменить…, изменить кнопку и отображаемое имя (например, Справка), выбрать новый значок для кнопки, несколько изменить его и назначить макрос (Макрос1) этой кнопке;
  • аналогично изменить надпись и кнопку для вызова еще одного макроса (Макрос2), например Очистка документа.

Выполнить макросы, используя кнопки панели быстрого доступа для Spravka.

Сохранить документ на диске в личной папке в файле с именем spravka.doc с типом файла «Документ Word с поддержкой макросов».

Для выхода из Word выберите из меню Выход из Word.

Использование VBA при решении задач в Word

VBA поддерживает набор объектов, соответствующих элементам Word. Используя свойства и методы этих объектов можно автоматизировать все операции в Word. Однако целесообразно автоматизировать выполнение тех операций, для реализации которых нет стандартных средств в Word или их выполнение стандартными средствами является трудоемкой или рутинной работой. Рассмотрим наиболее важные объекты.

Объект Document представляет собой новый или созданный ранее открытый документ.

Основными свойствами объекта Document являются:

  • Count — количество открытых в данный момент документов;
  • ActiveDocument — активный документ.

Некоторые методы объекта Document и коллекции Documents:

  • Open — открывает файл, содержащий существующий документ и автоматически добавляет его в коллекцию;
  • Add — добавляет новый пустой документ;
  • Save — сохраняет изменения в существующем документе без закрытия;
  • Save As (только для объекта) — сохраняет активный вновь созданный документ в текущей папке;
  • Item — позволяет получить доступ к элементу коллекции;
  • Activate (только для объекта) — активизирует открытый документ;
  • PrintOut (только для объекта) — печать документа;
  • Close — закрывает документ.

Объекты Character (символ), Word (слово), Sentence (предложение), Paragraph (абзац), Section (раздел документа) задают структуризацию текста документа.

Все эти объекты имеют свойства:

  • Count — свойство возвращает количество элементов в коллекции;
  • First — свойство возвращает объект, являющийся первым элементом коллекции;
  • Last — свойство возвращает объект, являющийся последним элементом.

Коллекции Characters, Words, Sentences имеют единственный метод Item(Index).

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

Формат абзаца может быть определен и с помощью методов. Приведем некоторые методы коллекции Paragraphs:

  • Item — определяет элемент коллекции;
  • Add — добавляет новый пустой абзац (параметр метода указывает точку вставки, задается объектом Range);
  • InsertParagraph, InsertParagraphAfter, InsertParagraphBefore — осуществляют вставку пустого абзаца вместо текста или после, или перед текстом, задаваемым объектом Selection или Range;
  • Reset — удаляет форматирование, сделанное вручную, применяя к абзацу формат, заданный стилем абзаца;
  • Indent, Outdent — увеличивают, уменьшают отступ абзаца от края листа;
  • TabHangingIndent(Count), TabIndent(Count) — увеличивают (Count>0), уменьшают (Count
  • Space1, Space2, Space15 — устанавливают межстрочный интервал (одинарный, двойной, полуторный).

Объекты Range (диапазон) и Selection (выделение) представляют части документа.

Определение 3

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

Свойствами объекта Range являются:

  • Start — начальная символьная позиция диапазона;
  • End — конечная символьная позиция диапазона;
  • Text — позволяет получить или изменить содержимое объекта.

Определение 4

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

Ниже приведены некоторые методы присущие объектам Selection и Range:

  • Move — метод перемещения точки вставки;
  • MoveStart, MoveEND — методы изменения значения свойств Start и End;
  • Collapse — сворачивает диапазон к его началу или концу;
  • Next — метод получения ссылки на очередной элемент коллекции объектов в диапазоне или выделенном фрагменте;
  • Delete — удаляет текст, входящий в диапазон;
  • InsertAfter , InsertBefore вставляет текст до или после текста, входящего в диапазон.
  • Copy — копирует объект в буфер обмена;
  • Cut — перемещает объект в буфер обмена;
  • Paste — позволяет поместить содержимое буфера в область, заданную объектом Range или Selection.

Находи статьи и создавай свой список литературы по ГОСТу

Поиск по теме

A Word file is supposed to be created without Word with the help of Java application protocol interfaces.

Concepts Involved: Apache POI and Maven

Apache POI Is an API provided by Apache foundation which is a collection of different java libraries. This facility gives the library to read, write, and manipulate different Microsoft files such as Excel sheets, PowerPoint, and Word files. There are two types basically older version including ‘.doc’, ‘.ppt’ while newer versions of files as ‘.docx’, ‘.pptx’. There are two ways to deal with Apache POI as mentioned below:

Binary Distribution  Source Distribution 
No compilation is required to generate file.jar files  Files to generated needs to be compiled in order to generate file.jar files 
If working with Linux go for the ‘.tar.gz’ version (version 3.5 backward) otherwise simply download the .zip. the file extension for installation to work on Apache POI.  Here format does not matter because file is not compiled so can be altered as per need 

Here zip file is taken for consideration and also if the operating system is Windows, zip files should be preferred. It is a simple java project so binary distribution API is used. In the process of creating the document, several paragraphs will be inserted as a sample to display output and will be providing styles to paragraphs such as font color, font name, and font size. 

Now in order to create a Word file without using Microsoft Word, there is a java interface called Spire and if there is a need to create a PDF document without using Adobe Acrobat then it can be done with the use of an interface known as ‘E-Ice blue’. Here ‘Spire.doc’ must have to be imported as per problem statement as all dealing is in word format.

Spire.Doc for Java is a professional Java Word API that enables Java applications to create, convert, manipulate, and print Word documents without using Microsoft Office. It will be imported as a reference for this program as a reference. 

Syntax: For importing libraries in java of Spire

import Spire.Doc.jar ;

Components Of Spire involved are as follows:

Component Responsibility
XML Word Processor Format (XWPF) Reading and writing in ‘docx’ extensions files of MS-Word
Horrible Word Processor Format (HWPF) Reading and writing in ‘doc’ extensions files of MS-Word 

Additionally, there is another Java API for PDF format as discussed above ‘E-Ice Blue’ that enables developers to read, write, convert, and print PDF documents in Java applications without using Adobe Acrobat. Similarly, a PowerPoint API allows developers to create, read, edit, convert, and print PowerPoint files within Java applications.

If user is creating shear Maven project, one can easily add the jar dependency by adding the following configurations to the pom.xml.

Now, just like any class Apache POI contains classes and methods to work on. Major components of Apache POI are discussed below to understand the internal working of a file, how it is been generated without Word with help of classes and methods. There are basically two versions of files been present in Word itself.

Older files extensions Newer file extension (Version 3.5)
doc docx 
xls xlsx
ppt pptx

Maven 

These files are accessed using Maven. Maven is a powerful project management tool that is based on POM (project object model). It is used for projects to build, dependency, and documentation. It simplifies the build process like ANT. But it is too much advanced than ANT.
In short terms we can tell maven is a tool that can be used for building and managing any Java-based project. Maven makes the day-to-day work of Java developers easier and generally help with the comprehension of any Java-based project.

Maven does have some specific commands to deal with files. Most frequently used are:

poi + poi + scratchpadpoi    // In order to deal with older Word file versions 
poi + poi-ooxml              // In order to deal with new Word file versions

Implementation: Below program depicts the responsibility of Spire API in creating a Word file:

Java

import com.spire.doc.Document;

import com.spire.doc.FileFormat;

import com.spire.doc.Section;

import com.spire.doc.documents.BuiltinStyle;

import com.spire.doc.documents.Paragraph;

import com.spire.doc.documents.ParagraphStyle;

class GFG {

    public static void main(String[] args)

    {

        Document document = new Document();

        Section section = document.addSection();

        Paragraph heading = section.addParagraph();

        heading.appendText("Java");

        Paragraph subheading_1 = section.addParagraph();

        subheading_1.appendText("What's Java");

        Paragraph para_1 = section.addParagraph();

        para_1.appendText(

            "Java is a general purpose, high-level programming language developed by Sun Microsystems."

            + " The Java programming language was developed by a small team of engineers, "

            + "known as the Green Team, who initiated the language in 1991.");

        Paragraph para_2 = section.addParagraph();

        para_2.appendText(

            "Originally called OAK, the Java language was designed for handheld devices and set-top boxes. "

            + "Oak was unsuccessful and in 1995 Sun changed the name to Java and modified the language to take "

            + "advantage of the burgeoning World Wide Web. ");

        Paragraph subheading_2 = section.addParagraph();

        subheading_2.appendText("Java Today");

        Paragraph para_3 = section.addParagraph();

        para_3.appendText(

            "Today the Java platform is a commonly used foundation for developing and delivering content "

            + "on the web. According to Oracle, there are more than 9 million Java developers worldwide and more "

            + "than 3 billion mobile phones run Java.");

        heading.applyStyle(BuiltinStyle.Title);

        subheading_1.applyStyle(BuiltinStyle.Heading_3);

        subheading_2.applyStyle(BuiltinStyle.Heading_3);

        ParagraphStyle style = new ParagraphStyle(document);

        style.setName("paraStyle");

        style.getCharacterFormat().setFontName("Arial");

        style.getCharacterFormat().setFontSize(11f);

        document.getStyles().add(style);

        para_1.applyStyle("paraStyle");

        para_2.applyStyle("paraStyle");

        para_3.applyStyle("paraStyle");

        for (int i = 0;

             i < section.getParagraphs().getCount(); i++) {

            section.getParagraphs()

                .get(i)

                .getFormat()

                .setAfterAutoSpacing(true);

        }

        document.saveToFile(

            "output/CreateAWordDocument.docx",

            FileFormat.Docx);

    }

}

Output:

8.1. Структура проекта

Структура проекта
Word
в целом похожа на структуру проекта
Excel.
Непосредственно после создания пустого
документа проект содержит два объекта:
объект Document,
представляющий собственно документ, и
ссылку на шаблон Normal.
В дальнейшем в проект, как обычно, могут
быть добавлены другие модули и формы.

8.2. ОбъектApplication

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

8.3. Работа с документами

Подобно приложению
Excel,
для работы с документами объектная
модель Word
предусматривает коллекцию Documents,
содержащую объекты Document,
представляющие собой любой открытый
документ Word.

Рассмотрим
методы коллекции Documents.

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

Метод Close
(
SaveChanges,
OriginalFormat)
закрывает один или несколько документов.
При присвоении параметру SaveChanges
значений wdDoNotSaveChanges,
wdPromptSaveChanges
или wdSaveChanges
документ будет либо не сохранен, либо
будет выдан запрос на сохранение, либо
документ будет сохранен. Значение
параметра OriginalFormat
определяет формат сохраняемого документа.

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

Метод Save
позволяет
сохранить все документы, являющиеся
элементами коллекции.

К отдельному
открытому документу можно получить
доступ, например, через коллекцию
Documents.
Рассмотрим свойства и методы объекта
Document
приведены
в табл.
13.

Таблица
13

Свойства и методы
объекта Document

Название

Описание

GrammarChecked

Определяет,
была ли запущена проверка орфографии
для данного документа

CrammaticalErrors

Возвращает
коллекциюProofreadingErrors,
которая включает предложения, содержащие
грамматические ошибки

Name

Определяет
имя файла на диске, в котором хранится
документ. Атрибут только для чтения

Paragraphs

Возвращает
коллекцию, содержащую все абзацы в
заданном документе, диапазоне или
выделении

ReadOnly

True,
если документ открыт только для чтения

Saved

Если
файл был сохранен, то имеет значение
True

ShowSpeelingErrors

В
значении Trueустанавливает
режим подчеркивания слов с грамматическими
ошибками

ShowGrammaticalErrors

Задает
режим подчеркивания во время ввода
текста в документ

Styles

Возвращает
коллекцию, содержащую все стили в
заданном документе

Tables

Возвращает
коллекцию, содержащую все таблицы в
заданном документе, диапазоне или
выделении

TablesOfContents

Возвращает
коллекцию, содержащую все оглавления
в заданном документе

Type

Возвращает
тип документа: обычный документ
(wdTypeDocument) или шаблон
(wdTypeTemplate)

Windows

Возвращает
коллекцию, содержащую все окна в
заданном документе

CheckGrammar

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

PrintPreview

Переключает
Wordв режим предварительного
просмотра документа

Range (Start, End)

Возвращает
объект Range, который
определяется позициями двух символов
фрагмента текста: начального и
конечного. ЭлементыStartиEndимеют типLongи задают позицию первого и последнего
символа в диапазоне

Redo(Times)

Отменят
последнее из отмененных до этого
действий или целую последовательность
действий. Timesопределяет
количество отменяемых действий

Save

Сохраняет
документ. Не имеет параметров

SaveAs

Позволяет
выполнить действия, аналогичные
команде Файл|Сохранить как

Undo

Отменяет
последнее выполненное действие или
их последовательность

UpdateStyles

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

Создание нового экземпляра приложения Word из кода VBA Excel или подключение к открытому для работы с документами. Функции CreateObject и GetObject.

Работа с Word из кода VBA Excel
Часть 1. Управление приложением Word
[Часть 1] [Часть 2] [Часть 3] [Часть 4] [Часть 5] [Часть 6]

Создание объекта Word.Application

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

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

Раннее связывание приложения Word

Создание нового экземпляра Word.Application и присвоение ссылки на него переменной myWord:

‘Создание экземпляра приложения Word

‘с ранней привязкой одной строкой

Dim myWord As New Word.Application

‘Создание экземпляра приложения Word

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

Dim myWord As Word.Application

Set myWord = New Word.Application

Для раннего связывания переменной с объектом Word.Application необходимо подключить в редакторе VBA Excel ссылку на библиотеку Microsoft Word Object Library, если она не подключена. Подключается ссылка в окне «References VBAproject», перейти в которое можно через главное меню редактора: Tools–>References…

Раннее связывание позволяет при написании кода использовать лист подсказок для выбора и вставки свойств и методов привязанных объектов (Auto List Members). Если проект VBA Excel создается на заказ, то, после его завершения, раннее связывание следует заменить на позднее, так как на компьютере пользователя может не оказаться нужной библиотеки, и код работать не будет.

Позднее связывание приложения Word

Создание нового экземпляра Word.Application с помощью функции CreateObject и присвоение ссылки на него переменной myWord:

Dim myWord As Object

Set myWord = CreateObject(«Word.Application»)

Присвоение переменной myWord ссылки на открытый экземпляр приложения Word с помощью функции GetObject:

Dim myWord As Object

Set myWord = GetObject(, «Word.Application»)

Если открытого приложения Word нет, выполнение функции GetObject приведет к ошибке. Чтобы ее избежать, следует предусмотреть создание нового экземпляра Word.Application с помощью функции CreateObject, если открытое приложение не будет найдено (смотрите пример 3).

В программы VBA Excel, работающие с Word, следует включать обработчик ошибок.

Закрытие объекта Word.Application

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

‘отображаем приложение Word

myWord.Visible = True

‘освобождаем переменную от ссылки

Set myWord = Nothing

Если перед завершением процедуры VBA Excel необходимо приложение Word закрыть, используйте метод Quit:

‘закрываем приложение Word

myWord.Quit

‘освобождаем переменную от ссылки

Set myWord = Nothing

Если переменная не содержит ссылку на приложение (myWord = Nothing), метод Quit возвратит ошибку. Чтобы этого не произошло, перед применением метода Quit необходимо проверить наличие ссылки в переменной myWord (смотрите пример 3).

Пример 1
Создаем новый экземпляр объекта Word.Application с ранним связыванием и отображаем его на экране:

Sub Primer1()

Dim myWord As New Word.Application

‘———-

‘блок операторов для создания, открытия

‘и редактирования документов Word

‘———-

myWord.Visible = True

Set myWord = Nothing

End Sub

Запустите код примера 1 на выполнение. Вы увидите появившийся на панели задач ярлык приложения Word. Перейдите на него и закройте приложение вручную.

Пример 2
Создаем новый экземпляр объекта Word.Application с поздним связыванием, отображаем его на экране, останавливаем программу и наблюдаем закрытие приложения методом Quit:

Sub Primer2()

Dim myWord As Object

Set myWord = CreateObject(«Word.Application»)

‘———-

‘блок операторов для создания, открытия

‘и редактирования документов Word

‘———-

myWord.Visible = True

MsgBox «Остановка программы»

myWord.Quit

Set myWord = Nothing

End Sub

Запустите код примера 2 на выполнение. Закройте информационное окно MsgBox и смотрите, как исчезнет с панели задач ярлык приложения Word, созданного перед остановкой кода.

Пример 3
Пытаемся создать ссылку на открытый экземпляр приложения Word с помощью функции GetObject, а если открытого экземпляра нет, создаем новый с помощью функции CreateObject:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

Sub Primer3()

Dim myWord As Object

On Error Resume Next

Set myWord = GetObject(, «Word.Application»)

  If myWord Is Nothing Then

    Set myWord = CreateObject(«Word.Application»)

  End If

On Error GoTo Instr

‘———-

‘блок операторов для создания, открытия

‘и редактирования документов Word

‘———-

myWord.Visible = True

Set myWord = Nothing

Exit Sub

Instr:

  If Err.Description <> «» Then

    MsgBox «Произошла ошибка: « & Err.Description

  End If

  If Not myWord Is Nothing Then

    myWord.Quit

    Set myWord = Nothing

  End If

End Sub

Строка On Error Resume Next передаст управление следующему оператору, если открытого экземпляра программы Word не существует, и выполнение функции GetObject приведет к ошибке. В этом случае будет создан новый экземпляр Word.Application с помощью функции CreateObject.

В код добавлен обработчик ошибок On Error GoTo Instr, который поможет корректно завершить программу при возникновении ошибки. А также он позволит во время тестирования не наплодить большое количество ненужных экземпляров приложения Word. Проверяйте их наличие по Диспетчеру задач (Ctrl+Shift+Esc) и удаляйте лишние.

Строка Exit Sub завершит процедуру, если она прошла без ошибок. В случае возникновения ошибки, будет выполнен код после метки Instr:.

Понравилась статья? Поделить с друзьями:
  • Создать свой интернет word документ
  • Создать резюме в формате word
  • Создать программу в vba word
  • Создать реестр договоров в excel образец
  • Создать приложение на основе excel