0 / 0 / 0 Регистрация: 01.12.2021 Сообщений: 9 |
|
1 |
|
Создать класс для хранения информации об электронном документе и классы-наследники14.11.2022, 11:12. Показов 249. Ответов 1
Задали задание, но при этом ничего не объяснили, вот само задание, буду очень благодарен, кто сделает. ООП на С# Создать класс для хранения информации об электронном документе (имя, автор, ключевые слова, тематика, путь к файлу).
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
14.11.2022, 11:12 |
Ответы с готовыми решениями: Создать класс для хранения информации об электронном документе и классы-наследники Создать класс для хранения информации об электронном документе Создать класс Robot и классы-наследники от него Создать класс «Дичь» для хранения информации о размере добычи 1 |
iLinks 515 / 340 / 197 Регистрация: 03.01.2017 Сообщений: 938 |
||||
14.11.2022, 16:21 |
2 |
|||
Как вариант части реализации
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
14.11.2022, 16:21 |
Помогаю со студенческими работами здесь Создать класс который может быть использован для хранения информации и студентах Программа, работа с классами. Создать класс TMan для хранения информации о человеке с полями: имя, возраст, пол Написать абстрактный класс и классы-наследники Создать класс HomeLibary. Предусмотреть возможность хранения о книгах следующей информации: Реализуйте класс для хранения ФИО и номера телефона человека, класс для хранения даты рождения человека, а также класс для хранения ФИО и почтового ад Класс для хранения персональной информации 1. Объявите класс CPerson, используемый… Базовый класс с виртуальными методами и классы наследники. Динамическое приведение типов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 2 |
Выполнив задания
этой темы, вы научитесь:
- Технологии создания интегрированного документа;
- Присваивать тип к используемым данным;
- Использовать технологию OLE.
Краткие теоретические сведения
Текстовый редактор – это программа, которая
позволяет создавать, редактировать, форматировать, сохранять и печатать
документы.
Графический редактор – это программа,
предназначенная для создания, редактирования и просмотра графических
изображений.
Электронная таблица – это программа для
обработки и хранения числовых данных, которая работает в режиме диалога с
пользователем.
Система управления базами данных (СУБД) –
программа, которая позволяет создавать базы данных и обеспечивает обработку,
сортировку и поиск данных.
Основное назначение технологии OLE (Object Linking and Embedding)
– создание связи между разнотипными объектами Windows.
Практические
задания
Задание 1. Набрать по образцу следующий текст в MS WORD и
сохранить под именем Статистика на рабочем столе в папке под своей
фамилией и группой. Начертания шрифтов определить самостоятельно:
Крупнейшие нефтяные компании России
В России добычу нефти осуществляют 9 крупных
вертикально-интегрированных нефтяных компании (ВИНК). А также около 150 малых и
средних добывающих компаний. На долю ВИНК приходится порядка 90% всей
добычи нефти. Примерно 2,5% нефти добывает крупнейшая российская
газодобывающая компания Газпром. И остальное добывают независимые
добывающие предприятия.
Вертикальная интеграция в нефтяном бизнесе — это
объединение различных звеньев технологической цепочки добычи и переработки
углеводородов («от скважины до бензоколонки»):
ü разведка запасов нефти, бурение и обустройство
месторождений;
ü добыча нефти и ее транспортировка;
ü переработка нефти и транспортировка
нефтепродуктов;
ü сбыт (маркетинг) нефтепродуктов.
Вертикальная
интеграция позволяет достичь следующих конкурентных преимуществ:
ü обеспечение гарантированных условий поставок
сырья и сбыта продукции
ü снижение рисков, связанных с изменениями
рыночной конъюнктуры
ü снижение затрат на выпуск единицы продукции
Лидерами нефтяной отрасли в России по добыче нефти являются Роснефть и Лукойл.
Задание 2. Построить в MS Excel следующую таблицу и сохранить под
именем Добыча нефти на рабочем столе в папке под своей фамилией и
группой:
Добыча нефти и газового конденсата |
||||
Компания |
2008 г. |
2009г. |
2010г. |
2011г. |
Роснефть |
106,1 |
108,9 |
115,8 |
122,6 |
Лукойл |
95,2 |
97,6 |
95,9 |
96,0 |
ТНК-ВР |
68,8 |
70,2 |
71,7 |
71,3 |
Сургутнефтегаз |
61,7 |
59,6 |
59,5 |
60,8 |
Газпромнефть |
30,7 |
29,9 |
29,8 |
35,3 |
Татнефть |
26,1 |
26,1 |
26,1 |
26,1 |
Славнефть |
19,6 |
18,9 |
18,4 |
18,1 |
Башнефть |
11,7 |
12,2 |
14,1 |
15,1 |
Русснефть |
14,2 |
12,7 |
13,0 |
13,6 |
1)
Используя
мастер функции найти по годам: максимальное,
минимальное, среднее, суммарное значения Добычи нефти.
2)
Построить линейчатую диаграмму,
отображающую изменение добычи нефти.
Задание 3. Построить в MS Visio крестовую схему фонтанной арматуры АФК3 – 6521 и сохранить под именем Схема фонтанной арматуры на
рабочем столе в папке под своей фамилией и группой.
где 1 – крестовина
колонной головки; 2 – трубная головка; 3 – тройник; 4 – задвижка; 5 – манометр;
6 –дроссельное устройство.
Задание 4. Создать БД в MS Aссеss,
состоящую из одной таблицы с помощью мастера таблиц с полями: Код мастера,
Фамилия, Имя, Отчество, Номер бригады. Типы полей, количество записей в таблице
определите самостоятельно. Сохранить под именем База данных.
Задание 5. В документ Статистика вставьте внедренный
объект из приложений MS Visio, MS Excel, MS Access:
ü
меню Вставка ® Объект ®вкладка
Создание из файла® поставьте флажок Связь с файлом.
ü
с помощью кнопки Обзор
выбрать один из созданных вами файлов и нажать ОК.
ü
другие созданные вами
файлы внедрить аналогично.
ü
сохранить и закрыть файл Статистика.
Задание 6. Откройте выполненный в MS Visio файл Схема фонтанной арматуры и выполните следующие изменения: удалите две детали схемы. Сохранить под тем же
именем.
Задание 7. Откройте выполненный в MS Excel
файл Добыча нефти и
выполните следующие изменения:
удалить строку «Татнефть». Сохранить под тем же именем.
Задание 8. Откройте файл Статистика. Какие изменения вы видите?
Отчет
1.
Результаты выполнения
сдать с экрана.
2.
Ответить на вопросы:
а.
Что происходит в
процессе редактирования текста?
б.
Что происходит в
процессе форматирования текста, графического изображения и электронной таблицы?
в.
Перечислите типы
данных, используемых в СУБД MS ACCESS.
г.
Для чего используется
процедура внедрения объектов?
Использованный
материал:
1. Статистические
данные по добыче нефти — http://vseonefti.ru/upstream/.
2. Оборудование
фонтанных скважин — http://oilgaz.h14.ru/1-2.shtml
Автоматизация Microsoft Word с помощью Visual Basic для создания нового документа
Сводка
В этой статье описывается создание нового документа в Word с помощью автоматизации из Visual Basic.
Пример кода
В примере кода в этой статье показано, как выполнить следующие действия:
- Вставка абзацев с текстом и форматированием.
- Просмотр и изменение различных диапазонов в документе.
- Вставка таблиц, форматирование таблиц и заполнение таблиц данными.
- Добавление диаграммы.
Чтобы создать новый документ Word с помощью автоматизации из Visual Basic, выполните следующие действия:
В Visual Basic создайте новый стандартный проект EXE. По умолчанию создается форма Form1.
В меню проект выберите пунктссылки, выберите один из следующих параметров и нажмите кнопку ОК:
- Для Office Word 2007 щелкните объектная Библиотека Microsoft Word 12,0.
- В Word 2003 щелкните объектная Библиотека Microsoft word 11,0.
- В Word 2002 щелкните объектная Библиотека Microsoft word 10,0.
- В Word 2000 щелкните объектная Библиотека Microsoft word 9,0.
Добавление элемента управления CommandButton в форму Form1.
Добавьте следующий код в событие Click для Command1:
Нажмите клавишу F5, чтобы запустить программу, а затем выберите Command1.
После завершения кода проверьте созданный документ. Документ содержит две страницы форматированных абзацев, таблиц и диаграмм.
Использование шаблона
Если вы используете автоматизацию для создания документов, отформатированных в общем формате, можно воспользоваться новым документом, основанным на предварительно отформатированном шаблоне. Использование шаблона с клиентом автоматизации Word имеет два существенных преимущества по сравнению с созданием документа из ничего:
- Вы можете больше управлять форматированием и размещением объектов в документах.
- Вы можете создавать документы с меньшим количеством кода.
С помощью шаблона можно выполнить точную настройку размещения таблиц, абзацев и других объектов в документе, а также включить форматирование для этих объектов. С помощью автоматизации можно создать новый документ на основе шаблона, используя следующий код:
В шаблоне можно определить закладки, чтобы клиент автоматизации мог заполнять переменный текст в определенном месте документа, как показано ниже:
Еще одно преимущество использования шаблона состоит в том, что вы можете создавать и сохранять стили форматирования, которые вы хотите применить во время выполнения, следующим образом:
Ссылки
Для получения дополнительных сведений щелкните номера статей, приведенные ниже, чтобы просмотреть статьи базы знаний Майкрософт:
285332 как автоматизировать Word 2002 с помощью Visual Basic для создания слияния почты
(c) корпорация Майкрософт (Microsoft Corporation) 2001, все права защищены. Вклады Лори B. Турнер, корпорация Майкрософт.
10.4.2 Свойства и методы коллекции Documents
Коллекция Word.Documents, методы Add(), Open(), Item(), программное создание и открытие документов Word в VBA
Коллекция Documents, как уже говорилось, представляет все документы Word, открытые в настоящий момент. Начинается нумерация документов в коллекции с 1. Из свойств этой коллекции интерес может представлять только свойство Count — количество открытых документов. Гораздо важнее методы этой коллекции. Про некоторые из них мы уже говорили в предыдущем разделе, но здесь для справки при приведем информацию о них еще раз:
- Add() — этот метод позволяет создать и сразу же открыть новый документ (и вернуть ссылку на его объект). Это — наиболее распространенный способ создания новых документов в Word. Полный синтаксис этого метода выглядит как
Add(Template, NewTemplate, DocumentType, Visible)
Template — это шаблон для создания нового документа, NewTemplate (true/false ) — делать ли новый документ шаблоном, DocumentType — варианты: wdNewBlankDocument , wdNewEmailMessage, wdNewFrameset или wdNewWebPage (по умолчанию — новый чистый документ ), Visible — будет ли новый документ видимым (по умолчанию ) или невидимым .
- Open() — этот еще один важнейший метод коллекции Documents позволяет открыть документ с диска и добавить его в коллекцию. Этот метод принимает множество параметров, из которых обязательным является только один — имя документа (вместе с путем к нему). Самый простой вариант применения этого метода выглядит так:
Dim oDoc1 As Document
Set oDoc1 = Documents.Open(«c:doc1.doc»)
- метод Item() позволяет найти нужный документ в коллекции по его индексу. Но обычно для получения ссылки на нужный документ используется конструкция For..Next с проверкой значения какого-либо свойства документа через If. Чаще всего это свойство — Name:
Dim oDoc1 As Document
For i = 1 To Documents.Count
Set oDoc1 = Documents.Item(i)
If oDoc1.Name = «doc1.doc» Then
Set oDoc1 = Nothing
Эта конструкция возвращает ссылку в виде переменной oDoc1 на документ doc1.doc, если он точно есть в коллекции. Если его нет, то во избежание ошибок нужно реализовывать дополнительные проверки. На практике можно было бы подумать, не нужно ли вам перед сравнением привести имя документа doc1.doc в нижний регистр — если учитывать регистр букв при поиске вам не нужно.
Через свойство Item можно получить доступ к объекту документа напрямую. Например, в этом примере мы получаем имя первого документа в коллекции Documents:
- методы Save() и Close() — позволяют сохранить и закрыть все документы в коллекции соответственно.
- методы CanCheckOut() (можно ли «забрать» документ в монопольный доступ) и CheckOut() (забрать документ в монопольный доступ) можно применять, если документ находится в документной библиотеке в базе данных SharePoint Portal Server.
Макрос создания документов Word по данным таблицы Excel
Макрос предназначен для программного создания документов Word на основе шаблона
(без использования функции слияния в Word)
В прикреплённом к статье архиве находятся 2 файла:
- шаблон договора в формате Microsoft Word (расширение .dot)
- файл Excel с макросом
Настройки макроса задаются в коде:
Const ИмяФайлаШаблона = «шаблон.dot»
Const КоличествоОбрабатываемыхСтолбцов = 8
Const РасширениеСоздаваемыхФайлов = «.doc»
При нажатии кнопки запуска макрос на основе шаблона dot создаёт очередной файл, и в этом документе производит замену текста («кода поля») из первой строки файла Excel на значение поля (из очередной строки с данными файла Excel)
Папка для сформированных документов создаётся автоматически, и содержит в имени текущую дату и время
(например, созданная папка будет называться Договоры, сформированные 01-05-2011 в 15-03-24)
Имена создаваемых файлов формируются объединением полей фамилия, имя и отчество, с добавлением расширения doc
PS: Макрос был написан достаточно давно, когда я только начинал изучать VBA, — так что код недостаточно универсален.
Но, в качестве примера, пожалуй, подойдёт (если вам нужен более функциональный макрос, воспользуйтесь универсальной надстройкой (см. ниже))
Ознакомьтесь также с универсальной надстройкой формирования документов по шаблонам,
которая может делать всё тоже самое, что и эта программа,
только в качестве шаблонов могут выступать, помимо документов Word, ещё текстовые файлы, и книги Excel.
В надстройке — много возможностей, и полезных дополнений: склонение ФИО в родительный и дательный падежи, автоматический вывод на печать (с заданным количеством копий), размещение созданных файлов в разных папках, создание и рассылка писем со вложениями, и множество других полезных функций.
По вышеприведённой ссылке программа заполнения документов Word из Excel доступна для бесплатного скачивания.
Внимание: просьбы о доработке макроса, описанного в этой статье, не принимаются.
Есть новая (универсальная) версия, — в которой уже есть практически всё, что может понадобиться.
Вложение | Размер | Загрузки | Последняя загрузка |
---|---|---|---|
CreateWordDocuments2.zip | 139.71 КБ | 34 | 5 лет 47 недель назад |
- 160324 просмотра
Комментарии
Спасибо, за макрос, не могли бы подсказать что в нем изменить что бы обрабатывалась только та строка в которой выделенная ячейка?
Спасибо за макрос. Очень помог в работе.
Этот макрос уже не поддерживается.
Используйте новую (расширенную) версию программы, — там все работает без ошибок.
Макрос выдает ошибку (Type mismatch (Error 13)) при обработке ячейки с формулой, подскажите пожалуйста как решить эту проблему?
Здравствуйте. Спасибо вам за этот макрос, который помог мне в работе.
Не могли бы вы еще подсказать как сделать чтоб в шаблон Word прописывались данные из нескольких (разных) строк Excel?
Заранее спасибо.
Подскажите. а можно сделать чтобы макрос обрабатывал только те строки в которых стоит номер договора, а если пусто пропускал?
Ознакомился с программой. Серьезный труд. Снимаю шляпу. Но мне понравился именно этот макрос. С колонтитулами я разобрался — оказалось ничего сложного, да и сам макрос оброс уже кучей доработок. Затянуло, знаете ли ))
Евгений, воспользуйтесь универсальной программой для заполнения документов Word — там реализована подстановка значений в колонтитулы
Добрый день! Макрос очень помог в работе. Доделал его немного под свои нужды: вывод в разные шаблоны документов word при разных значениях в excel. Остался один вопрос — в сам документ word текст вставляется отлично, а вот в колнтитулы — нет 🙁 Подскажите, пожалуйста, как это исправить?
Вова, если нет денег на заказ, есть только 2 варианта:
1) разобраться в этих макросах, и сделать самому (благо, примеров подобных макросов в интернете предостаточно)
2) обратиться за помощью на любой из форумов по Excel (но, опять же, если с вашей стороны никаких наработок нет, вряд ли кто сделает всю работу за вас)
А если в етом макросе сделать так чтоби он заменял дание сначла с строки активной ячейки а потом если одна из ячеек следующей строки = ячейке из предедущей строкии снова вставлял в ворд документ заменяемие поля и снова делел замену, и так до момента когда одна из ячеек не будеть раван ячеике из следуищей, строки тогад макрос по ектому условию не вставляет заменяемие поля а просто сохраняет ворд документ. То есь допустим мне нужно создать документ ворд по одному из людей дание по которому есть в нескольких строках. Пожалста помогите очень нужно, просто нет денег на заказ.
Вова, в этом случае универсальное решение сделать не получится — уж слишком много возможных вариантов расположения данных в Excel, и способов заполнения документов Word.
Оформляйте заказ на сайте — сделаю для вас макрос под ваши требования.
Подскажите пожалуйста, как сделать так, чтобы макрос формировал один документ ворд на основании данных из нескольких строк Excel?
А как реализовать те же возможности, только используя функцию слияния в Word. Чтобы каждый новый раз не формировался новый документ а запись делалась на новой странице?
Теперь доступна новая версия универсальной программы формирования документов по шаблонам.
Программа очень удобна для быстрого создания договоров и приказов, заполнения актов и инструкций, печати писем и соглашений, заполнения путевых листов и извещений, распечатки протоколов и соглашений, подстановки данных в шаблоны заявлений и доверенностей.
Количество файлов-шаблонов (Word, Excel, TXT) неограничено.
Бесплатно скачать и протестировать программу можно по этой ссылке:
http://excelvba.ru/programmes/FillDocuments
Замечательно. Я, долгое время искал нечто подобное. Но к счасливой случайности вышел на Ваш сайт. Установил панели для VBA. И ещё коу-что. Практически разобрался в работе данного макроса. В VBA я, недавно. Но поставил перед собой задачу изучить его. Для этого я, решил составить программу для заполнения бланков аттестатов о среднем образовании и бланков дипломов об окончании ПТУ. До этого они заполнялись вручную. Задачу в Excel, я, программно решил, не безВашего в ней участия, некоторые фрагменты кода. У меня база заполняется посредством форм в виде развёрнутого аттестата. А, вот транспортировка данных в Word с листов — разворот и последняя страница. Как-то чуть-чуть не вяжется с общим видом программы. Нельзя-ли макрос транспортировки «засунуть» под форму? Если можно, то не смогли бы Вы посоветовать мне как это сделать. Делаю эту программу потому, что на Украине все мучаются с авторизованым заполнением бланков об окончании учебных заведений. А, так я бы мог бесплатно, это моё безусловное кредо, предоставить программу желающим. Заранее Вам благодарен. Помогая мне Вы помогаете и до того замордованым классным руководителям школ Украины.
можно ли по каждой записи сформировать 2 документа word?
Создание документа Word из Excel
Visual Basic |
при этом создаёт таблицу
если создаю документ при помощи
Visual Basic |
Visual Basic |
Visual Basic |
Visual Basic | |||||||||||||||||
30.12.2012, 18:13 | |||||||||||||||||
Создание документа Word по шаблону из Excel Создание документа Word из таблицы Excel Добавление срок в таблицу Word при заполнении документа Word из данных Excel Сохранение документа Word из макроса Excel |
|||||||||||||||||
30.12.2012, 18:48 | 2 | ||||||||||||||||
bizard, в программе Word свойство Selection относится к объекту Window. У объекта Document нет свойства Selection. Чтобы проще было писать код, в программе Excel в VBA нужно подлючить библиотеку: В этом случае, когда ставите точку, то будут всплывающие подсказки. Переменные в этом случае можно так создавать:
|
- Документы Word
- Создание файлов
- Работа с файлами
Макрос предназначен для программного создания документов Word на основе шаблона
(без использования функции слияния в Word)
В прикреплённом к статье архиве находятся 2 файла:
- шаблон договора в формате Microsoft Word (расширение .dot)
- файл Excel с макросом
Настройки макроса задаются в коде:
Const ИмяФайлаШаблона = «шаблон.dot»
Const КоличествоОбрабатываемыхСтолбцов = 8
Const РасширениеСоздаваемыхФайлов = «.doc»
При нажатии кнопки запуска макрос на основе шаблона dot создаёт очередной файл, и в этом документе производит замену текста («кода поля») из первой строки файла Excel на значение поля (из очередной строки с данными файла Excel)
Папка для сформированных документов создаётся автоматически, и содержит в имени текущую дату и время
(например, созданная папка будет называться Договоры, сформированные 01-05-2011 в 15-03-24)
Имена создаваемых файлов формируются объединением полей фамилия, имя и отчество, с добавлением расширения doc
PS: Макрос был написан достаточно давно, когда я только начинал изучать VBA, — так что код недостаточно универсален.
Но, в качестве примера, пожалуй, подойдёт (если вам нужен более функциональный макрос, воспользуйтесь универсальной надстройкой (см. ниже))
Ознакомьтесь также с универсальной надстройкой формирования документов по шаблонам,
которая может делать всё тоже самое, что и эта программа,
только в качестве шаблонов могут выступать, помимо документов Word, ещё текстовые файлы, и книги Excel.
В надстройке — много возможностей, и полезных дополнений: склонение ФИО в родительный и дательный падежи, автоматический вывод на печать (с заданным количеством копий), размещение созданных файлов в разных папках, создание и рассылка писем со вложениями, и множество других полезных функций.
По вышеприведённой ссылке программа заполнения документов Word из Excel доступна для бесплатного скачивания.
Внимание: просьбы о доработке макроса, описанного в этой статье, не принимаются.
Есть новая (универсальная) версия, — в которой уже есть практически всё, что может понадобиться.
- 197135 просмотров
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
Большинству операций, выполняемых программным способом, есть эквиваленты в пользовательском интерфейсе (UI), доступные как команды в меню и на панелях инструментов. Также существует нижележащая архитектура, обеспечивающая поддержку команд, выбираемых из UI. Всякий раз, когда вы создаете новый документ Word, он базируется на каком-либо шаблоне; расширение файлов шаблонов «.dot», а файлы документов – «.doc». Шаблон Word может содержать текст, код, стили, панели инструментов, элементы автотекста, комбинации клавиш для быстрого доступа к командам. Новый документ связывается с шаблоном и получает полный доступ к его элементам. Если вы не указываете конкретный шаблон, новый документ создается на основе стандартного шаблона «Normal.dot», который устанавливается при установке Word).
Шаблон Normal.dot является глобальным, он доступен любому документу, который вы создаете. Вы могли бы при желании поместить весь свой код в Normal.dot и создавать все документы в своей среде на основе собственного шаблона Normal (Обычный). Но тогда его файл мог бы стать чрезмерно большим, поэтому более эффективное решение для многих разработчиков — создание собственных шаблонов для конкретных приложений. В документах, создаваемых на основе вашего шаблона, код из стандартного шаблона Normal по-прежнему будет доступен. При необходимости можно связывать документ с несколькими шаблонами в дополнение к шаблону Normal.
Для работы с приложением Microsoft Word в .NET, используется объект Application, который является предком всех остальных объектов. Получив на него ссылку, вы можете работать с его методами и свойствами. Этот объект предоставляет большой набор методов и свойств, позволяющих программным путем управлять Microsoft Word. Код инициализации нового объекта Application, представлен ниже.
Microsoft.Office.Interop.Word.Application winword = new Microsoft.Office.Interop.Word.Application();
Чтобы открыть существующий документ или создать новый, необходимо создать новый объект Document.
object missing = System.Reflection.Missing.Value; Microsoft.Office.Interop.Word.Document document = winword.Documents.Add(ref missing, ref missing, ref missing, ref missing);
Выполняя какую-либо операцию в пользовательском интерфейсе Word (например, добавляя верхний колонтитул), вы выделяете соответствующую секцию, используя объект «Selection», определяющий текущую позицию «невидимого» курсора и применяете к ней новый параметр форматирования с использованием объекта «Range». Данный объект представляет область в документе и может включать в себя все что угодно — от пары символов, до таблиц, закладок и много другого. Вы не ограничены одним объектом «Range» — в одном документе можно определить сразу несколько таких объектов.
//Добавление верхнего колонтитула foreach (Microsoft.Office.Interop.Word.Section section in document.Sections) { Microsoft.Office.Interop.Word.Range headerRange = section.Headers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range; headerRange.Fields.Add(headerRange, Microsoft.Office.Interop.Word.WdFieldType.wdFieldPage); headerRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter; headerRange.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdBlue; headerRange.Font.Size = 10; headerRange.Text = "Верхний колонтитул" + Environment.NewLine + "www.CSharpCoderR.com"; } //Добавление нижнего колонтитула foreach (Microsoft.Office.Interop.Word.Section wordSection in document.Sections) { Microsoft.Office.Interop.Word.Range footerRange = wordSection.Footers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range; footerRange.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdDarkRed; footerRange.Font.Size = 10; footerRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter; footerRange.Text = "Нижний колонтитул" + Environment.NewLine + "www.CSharpCoderR.com"; }
Чтобы добавить текст в документ, необходимо указать позицию для вставки и сам текст.
//Добавление текста в документ document.Content.SetRange(0, 0); document.Content.Text = "www.CSharpCoderR.com" + Environment.NewLine;
Так же вы можете применить к тексту определенный стиль.
//Добавление текста со стилем Заголовок 1 Microsoft.Office.Interop.Word.Paragraph para1 = document.Content.Paragraphs.Add(ref missing); object styleHeading1 = "Заголовок 1"; para1.Range.set_Style(styleHeading1); para1.Range.Text = "Исходники по языку программирования CSharp"; para1.Range.InsertParagraphAfter();
В классе Microsoft.Office.Interop.Word.Document, присутствует коллекция «Tables», которая позволяет добавить таблицу в документ с использованием метода Add.
//Создание таблицы 5х5 Table firstTable = document.Tables.Add(para1.Range, 5, 5, ref missing, ref missing); firstTable.Borders.Enable = 1; foreach (Row row in firstTable.Rows) { foreach (Cell cell in row.Cells) { //Заголовок таблицы if (cell.RowIndex == 1) { cell.Range.Text = "Колонка " + cell.ColumnIndex.ToString(); cell.Range.Font.Bold = 1; //Задаем шрифт и размер текста cell.Range.Font.Name = "verdana"; cell.Range.Font.Size = 10; cell.Shading.BackgroundPatternColor = WdColor.wdColorGray25; //Выравнивание текста в заголовках столбцов по центру cell.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter; cell.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; } //Значения ячеек else { cell.Range.Text = (cell.RowIndex - 2 + cell.ColumnIndex).ToString(); } } }
Для функционирования описанного выше кода, необходимо добавить к текущему проекту объектную библиотеку MS Word. Перейдите в меню «Проект» и выберете команду «Добавить ссылку» или в обозревателе решений, найдите пункт «Ссылки» и сделайте клик правой клавишей мыши по нему, из появившегося контекстного меню выберете соответствующий пункт.
В открывшемся окне «Добавить ссылку», перейдите на вкладку «COM» и выберете «Microsoft Word 14.0 Object Library» из предложенного списка библиотек.
В обозревателе решений у вас появится ссылка на данную библиотеку.
Перейдите в конструктор главной формы и добавьте из панели элементов, командную кнопку «Button». Данный элемент необходим для запуска процесса создания документа и вызов MS Word для отображения.
Сделайте двойной клик левой клавишей мыши по элементу «Button» и вы перейдете в автоматически созданный метод события «button1_Click». Добавьте в него приведенный ниже код.
try { Microsoft.Office.Interop.Word.Application winword = new Microsoft.Office.Interop.Word.Application(); winword.Visible = false; //Заголовок документа winword.Documents.Application.Caption = "www.CSharpCoderR.com"; object missing = System.Reflection.Missing.Value; //Создание нового документа Microsoft.Office.Interop.Word.Document document = winword.Documents.Add(ref missing, ref missing, ref missing, ref missing); //добавление новой страницы //winword.Selection.InsertNewPage(); //Добавление верхнего колонтитула foreach (Microsoft.Office.Interop.Word.Section section in document.Sections) { Microsoft.Office.Interop.Word.Range headerRange = section.Headers[ Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range; headerRange.Fields.Add( headerRange, Microsoft.Office.Interop.Word.WdFieldType.wdFieldPage); headerRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter; headerRange.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdBlue; headerRange.Font.Size = 10; headerRange.Text = "Верхний колонтитул" + Environment.NewLine + "www.CSharpCoderR.com"; } //Добавление нижнего колонтитула foreach (Microsoft.Office.Interop.Word.Section wordSection in document.Sections) { // Microsoft.Office.Interop.Word.Range footerRange = wordSection.Footers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range; //Установка цвета текста footerRange.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdDarkRed; //Размер footerRange.Font.Size = 10; //Установка расположения по центру footerRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter; //Установка текста для вывода в нижнем колонтитуле footerRange.Text = "Нижний колонтитул" + Environment.NewLine + "www.CSharpCoderR.com"; } //Добавление текста в документ document.Content.SetRange(0, 0); document.Content.Text = "www.CSharpCoderR.com" + Environment.NewLine; //Добавление текста со стилем Заголовок 1 Microsoft.Office.Interop.Word.Paragraph para1 = document.Content.Paragraphs.Add(ref missing); object styleHeading1 = "Заголовок 1"; para1.Range.set_Style(styleHeading1); para1.Range.Text = "Исходники по языку программирования CSharp"; para1.Range.InsertParagraphAfter(); //Создание таблицы 5х5 Table firstTable = document.Tables.Add(para1.Range, 5, 5, ref missing, ref missing); firstTable.Borders.Enable = 1; foreach (Row row in firstTable.Rows) { foreach (Cell cell in row.Cells) { //Заголовок таблицы if (cell.RowIndex == 1) { cell.Range.Text = "Колонка " + cell.ColumnIndex.ToString(); cell.Range.Font.Bold = 1; //Задаем шрифт и размер текста cell.Range.Font.Name = "verdana"; cell.Range.Font.Size = 10; cell.Shading.BackgroundPatternColor = WdColor.wdColorGray25; //Выравнивание текста в заголовках столбцов по центру cell.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter; cell.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; } //Значения ячеек else { cell.Range.Text = (cell.RowIndex - 2 + cell.ColumnIndex).ToString(); } } } winword.Visible = true; } catch (Exception ex) { MessageBox.Show(ex.Message); }
Запустите ваш проект, нажав на клавиатуре, клавишу «F5». Нажмите на единственную кнопку, расположенную на главной форме вашего проекта. У вас автоматически откроется документ Microsoft Word с заполненным верхним и нижним колонтитулом, обычным и с применением стиля текстом, а так же заполненной таблицей.
Для сохранения документа в определенной директории, добавьте приведенный ниже код, после строки «winword.Visible = true;».
//Сохранение документа object filename = @"d:temp1.docx"; document.SaveAs(ref filename); //Закрытие текущего документа document.Close(ref missing, ref missing, ref missing); document = null; //Закрытие приложения Word winword.Quit(ref missing, ref missing, ref missing); winword = null;
При работе с приложением Word в памяти компьютера создается отдельный процесс, если его не закрыть или не вывести созданный документ на экран, то он будет работать до выключения компьютера. Так же при постоянной работе с такими документами, их процессы будут накапливаться незаметно для пользователя, что может привести к зависанию компьютера или другим последствиям.