Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лек 010.doc
Скачиваний:
28
Добавлен:
07.02.2015
Размер:
111.62 Кб
Скачать

Объект Document

Один из основных объектов в программировании Word - Document или его содержимое. Когда вы работаете с каким-то документом в Word, он считается активным, и на него можно ссылаться через свойство ActiveDocument объекта Application. Все Word-объекты Document также являются членами набора Documents объекта Application; этот набор включает все открытые документы. Объект Document позволяет работать с единственным документом, а набор Documents - со всеми открытыми документами. У классов Application и Document много общих членов, поэтому операции над документами можно выполнять как на уровне Application, так и на уровне Document.

К наиболее распространенным операциям над документами относятся:

  1. создание и открытие документов;

  2. добавление, поиск и замена текста;

  3. печать.

Наборы объекта Document

Документ состоит из символов, упорядоченных в слова, слова - в предложения, а те - в абзацы, которые в свою очередь могут быть упорядочены в разделы (sections). В каждом разделе свои верхние и нижние колонтитулы (headers and footers). Объект Document включает следующие наборы:

  1. Characters;

  2. Words;

  3. Sentences;

  4. Paragraphs;

  5. Sections;

  6. Headers/Footers.

Ссылки на документы

Вы можете ссылаться на объект Document как на член набора Documents по индексу. Индекс определяет местонахождение объекта Document в наборе Documents, причем индексы отсчитываются от 1, как и все наборы в Word. Следующий фрагмент кода присваивает объектной переменной ссылку на первый объект Document в наборе Documents:

view source

print?

1.' Visual Basic

2.Dim doc As Word.Document = _

3.  DirectCast(ThisApplication.Documents(1), Word.Document)

4.   

5.// C#

6.Word.Document doc = (Word.Document) ThisApplication.Documents[1];

Кроме того, на документ можно ссылаться по имени, что обычно удобнее, если вам нужно работать с определенным документом. Вряд ли вы будете часто ссылаться на документ по индексу, так как это значение может изменяться по мере открытия и закрытия других документов. Следующий фрагмент кода присваивает объектной переменной ссылку на документ по имени MyDoc.doc:

view source

print?

1.' Visual Basic

2.Dim doc As Word.Document = _

3.  DirectCast(ThisApplication.Documents("MyDoc.doc"), Word.Document)

4.   

5.// C#

6.Word.Document doc = 

7. (Word.Document) ThisApplication.Documents["MyDoc.doc"];

Если вам нужно сослаться на активный документ (документ, находящийся в фокусе), используйте свойство ActiveDocument объекта Application. Это свойство уже создано за вас в проекте Visual Studio .NET, поэтому ваш код будет эффективнее при ссылках на активный документ по ссылке ThisDocument. Вот пример кода, получающего имя активного документа:

view source

print?

1.' Visual Basic

2.Dim str As String = ThisDocument.Name

3.   

4.// C#

5.String str = ThisDocument.Name;

Создание, открытие и закрытие документов

Ссылка на объект ThisDocument в вашем проекте Word открывает вам доступ ко всем членам объекта Document, что позволяет работать с его методами и свойствами применительно к активному документу. Первый шаг в работе с Document - открытие существующего документа Word или создание нового.

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

Создавая новый документ Word, вы добавляете его в набор Documents объекта Application, где хранятся открытые документы Word. Поэтому для создания нового документа следует вызвать метод Add. Это равносильно щелчку кнопки New Blank Document на панели инструментов.

view source

print?

01.' Visual Basic

02.' Создание нового документа на основе Normal.dot

03.ThisApplication.Documents.Add()

04.   

05.// C#

06.// Создание нового документа на основе Normal.dot

07.Object template = Type.Missing;

08.Object newTemplate = Type.Missing;

09.Object documentType = Type.Missing;

10.Object visible = Type.Missing; 

11.   

12.ThisApplication.Documents.Add( 

13.  ref template, ref newTemplate, ref documentType, ref visible);

Совет Метод Documents.Add принимает до четырех необязательных параметров: имя шаблона, имя нового шаблона, тип документа и признак видимости нового документа. В C#, чтобы использовать значения по умолчанию для этих параметров, приходится передавать Type.Missing по ссылке.

У метода Add есть необязательный аргумент Template для создания нового документа на основе шаблона, отличного от Normal.dot. В этом случае вы должны предоставить полное имя файла (вместе с путем) этого шаблона.

view source

print?

01.' Visual Basic

02.' Создание нового документа на основе собственного шаблона

03.ThisApplication.Documents.Add( _

04. "C:\Test\MyTemplate.Dot")

05.   

06.// C#

07.// Создание нового документа на основе собственного шаблона

08.Object template = @"C:\Test\MyTemplate.Dot";

09.Object newTemplate = Type.Missing;

10.Object documentType = Type.Missing;

11.Object visible = Type.Missing; 

12.   

13.ThisApplication.Documents.Add( 

14. ref template, ref newTemplate, ref documentType, ref visible);

Этот код дает тот же результат, что и при выборе File | New и указании шаблона с помощью панели инструментов New Document. Задавая в коде аргумент Template, можно быть уверенным, что все документы будут создаваться на основе указанного шаблона.

Открытие существующего документа

Для этого предназначен метод Open. Его базовый синтаксис предельно прост: вызывая Open, вы указываете полный путь и имя файла. Этот метод также принимает ряд необязательных аргументов, например пароль или флаг, сообщающий, что документ должен быть только для чтения. Следующий код открывает документ, передавая лишь один из нескольких необязательных параметров. Разумеется, в коде на C# нужно передавать все параметры, но реальное значение требуется только для параметра FileName:

view source

print?

01.' Visual Basic

02.ThisApplication.Documents.Open("C:\Test\MyNewDocument")

03.   

04.// C#

05.Object filename = @"C:\Test\MyNewDocument";

06.Object confirmConversions = Type.Missing;

07.Object readOnly = Type.Missing;

08.Object addToRecentFiles = Type.Missing;

09.Object passwordDocument = Type.Missing;

10.Object passwordTemplate = Type.Missing;

11.Object revert = Type.Missing;

12.Object writePasswordDocument = Type.Missing;

13.Object writePasswordTemplate = Type.Missing;

14.Object format = Type.Missing;

15.Object encoding = Type.Missing;

16.Object visible = Type.Missing;

17.Object openConflictDocument = Type.Missing;

18.Object openAndRepair  = Type.Missing;

19.Object documentDirection = Type.Missing;

20.Object noEncodingDialog = Type.Missing;

21.   

22.ThisApplication.Documents.Open(ref filename, 

23. ref confirmConversions, ref readOnly, ref addToRecentFiles, 

24. ref passwordDocument, ref passwordTemplate, ref revert, 

25. ref writePasswordDocument, ref writePasswordTemplate, 

26. ref format, ref encoding, ref visible, ref openConflictDocument, 

27. ref openAndRepair , ref documentDirection, ref noEncodingDialog);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]