microsoft office interop word application

(Somewhat of a follow on from the post (which remains unanswered): https://stackoverflow.com/q/6197829/314661)

Using the following code

I am attempting to open and print a file programmatically.

The problem is each time I run the above code a new WINWORD.exe process is started and obviously this quickly eats up all the memory.

The application class doesn’t seem to contain a dispose/close or similar method.

After a bit of research I (realized) and changed the code to the following.

And I can see the remaining reference count is zero but the processes remain?

Большинству операций, выполняемых программным способом, есть эквиваленты в пользовательском интерфейсе (UI), доступные как команды в меню и на панелях инструментов. Также существует нижележащая архитектура, обеспечивающая поддержку команд, выбираемых из UI. Всякий раз, когда вы создаете новый документ Word, он базируется на каком-либо шаблоне; расширение файлов шаблонов «.dot», а файлы документов – «.doc». Шаблон Word может содержать текст, код, стили, панели инструментов, элементы автотекста, комбинации клавиш для быстрого доступа к командам. Новый документ связывается с шаблоном и получает полный доступ к его элементам. Если вы не указываете конкретный шаблон, новый документ создается на основе стандартного шаблона «Normal.dot», который устанавливается при установке Word).

Для работы с приложением Microsoft Word в .NET, используется объект Application, который является предком всех остальных объектов. Получив на него ссылку, вы можете работать с его методами и свойствами. Этот объект предоставляет большой набор методов и свойств, позволяющих программным путем управлять Microsoft Word. Код инициализации нового объекта Application, представлен ниже.

Чтобы открыть существующий документ или создать новый, необходимо создать новый объект Document.

Выполняя какую-либо операцию в пользовательском интерфейсе Word (например, добавляя верхний колонтитул), вы выделяете соответствующую секцию, используя объект «Selection», определяющий текущую позицию «невидимого» курсора и применяете к ней новый параметр форматирования с использованием объекта «Range». Данный объект представляет область в документе и может включать в себя все что угодно – от пары символов, до таблиц, закладок и много другого. Вы не ограничены одним объектом «Range» – в одном документе можно определить сразу несколько таких объектов.

Чтобы добавить текст в документ, необходимо указать позицию для вставки и сам текст.

Так же вы можете применить к тексту определенный стиль.

В классе Microsoft.Office.Interop.Word.Document, присутствует коллекция «Tables», которая позволяет добавить таблицу в документ с использованием метода Add.

Для функционирования описанного выше кода, необходимо добавить к текущему проекту объектную библиотеку MS Word. Перейдите в меню «Проект» и выберете команду «Добавить ссылку» или в обозревателе решений, найдите пункт «Ссылки» и сделайте клик правой клавишей мыши по нему, из появившегося контекстного меню выберете соответствующий пункт.

В открывшемся окне «Добавить ссылку», перейдите на вкладку «COM» и выберете «Microsoft Word 14.0 Object Library» из предложенного списка библиотек.

В обозревателе решений у вас появится ссылка на данную библиотеку.

Перейдите в конструктор главной формы и добавьте из панели элементов, командную кнопку «Button». Данный элемент необходим для запуска процесса создания документа и вызов MS Word для отображения.

Сделайте двойной клик левой клавишей мыши по элементу «Button» и вы перейдете в автоматически созданный метод события «button1_Click». Добавьте в него приведенный ниже код.

Запустите ваш проект, нажав на клавиатуре, клавишу «F5». Нажмите на единственную кнопку, расположенную на главной форме вашего проекта. У вас автоматически откроется документ Microsoft Word с заполненным верхним и нижним колонтитулом, обычным и с применением стиля текстом, а так же заполненной таблицей.

Содержание
  1. Definition
  2. Remarks
  3. Methods
  4. Activate() Activate() Activate()
  5. AddAddress(Array, Array) AddAddress(Array, Array) AddAddress(Array, Array)
  6. AutomaticChange() AutomaticChange() AutomaticChange()
  7. BuildKeyCode(WdKey, Object, Object, Object) BuildKeyCode(WdKey, Object, Object, Object) BuildKeyCode(WdKey, Object, Object, Object)
  8. CentimetersToPoints(Single) CentimetersToPoints(Single) CentimetersToPoints(Single)
  9. ChangeFileOpenDirectory(String) ChangeFileOpenDirectory(String) ChangeFileOpenDirectory(String)
  10. CheckGrammar(String) CheckGrammar(String) CheckGrammar(String)
  11. CheckSpelling(String, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) CheckSpelling(String, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) CheckSpelling(String, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)
  12. CleanString(String) CleanString(String) CleanString(String)
  13. CompareDocuments(Document, Document, WdCompareDestination, WdGranularity, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, String, Boolean) CompareDocuments(Document, Document, WdCompareDestination, WdGranularity, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, String, Boolean) CompareDocuments(Document, Document, WdCompareDestination, WdGranularity, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, String, Boolean)
  14. DDEExecute(Int32, String) DDEExecute(Int32, String) DDEExecute(Int32, String)
  15. DDEInitiate(String, String) DDEInitiate(String, String) DDEInitiate(String, String)
  16. DDEPoke(Int32, String, String) DDEPoke(Int32, String, String) DDEPoke(Int32, String, String)
  17. DDERequest(Int32, String) DDERequest(Int32, String) DDERequest(Int32, String)
  18. DDETerminate(Int32) DDETerminate(Int32) DDETerminate(Int32)
  19. DDETerminateAll() DDETerminateAll() DDETerminateAll()
  20. DefaultWebOptions() DefaultWebOptions() DefaultWebOptions()

Definition

Represents the Word application.

Remarks

This is a .NET interface derived from a COM coclass that is required by managed code for interoperability with the corresponding COM object. Use this derived interface to access all method, property, and event members of the COM object. However, if a method or event you want to use shares the same name under the same COM object, cast to the corresponding primary interface to call the method, and cast to the latest events interface to connect to the event. Refer to this topic for information about the COM object. For information about the method and property members of the COM object, see _Application. For information about the event members of the COM object, see ApplicationEvents4_Event.

Methods

Activate() Activate() Activate()

Activates the specified object.

AddAddress(Array, Array) AddAddress(Array, Array) AddAddress(Array, Array)

Adds an entry to the address book.

AutomaticChange() AutomaticChange() AutomaticChange()

Performs an AutoFormat action when there’s a change suggested by the Office Assistant.

BuildKeyCode(WdKey, Object, Object, Object) BuildKeyCode(WdKey, Object, Object, Object) BuildKeyCode(WdKey, Object, Object, Object)

Returns a unique number for the specified key combination.

CentimetersToPoints(Single) CentimetersToPoints(Single) CentimetersToPoints(Single)

Converts a measurement from centimeters to points (1 cm = 28.35 points).

ChangeFileOpenDirectory(String) ChangeFileOpenDirectory(String) ChangeFileOpenDirectory(String)

Sets the folder in which Microsoft Word searches for documents.

CheckGrammar(String) CheckGrammar(String) CheckGrammar(String)

Checks a string for grammatical errors.

CheckSpelling(String, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) CheckSpelling(String, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) CheckSpelling(String, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

Checks a string for spelling errors.

CleanString(String) CleanString(String) CleanString(String)

Removes nonprinting characters (character codes 1 – 29) and special Microsoft Word characters from the specified string or changes them to spaces (character code 32).

CompareDocuments(Document, Document, WdCompareDestination, WdGranularity, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, String, Boolean) CompareDocuments(Document, Document, WdCompareDestination, WdGranularity, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, String, Boolean) CompareDocuments(Document, Document, WdCompareDestination, WdGranularity, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, String, Boolean)

Compares two documents and returns a _Document object that represents the document that contains the differences between the two documents, marked using tracked changes.

DDEExecute(Int32, String) DDEExecute(Int32, String) DDEExecute(Int32, String)

Sends a command or series of commands to an application through the specified dynamic data exchange (DDE) channel.

DDEInitiate(String, String) DDEInitiate(String, String) DDEInitiate(String, String)

Opens a dynamic data exchange (DDE) channel to another application, and returns the channel number.

DDEPoke(Int32, String, String) DDEPoke(Int32, String, String) DDEPoke(Int32, String, String)

Uses an open dynamic data exchange (DDE) channel to send data to an application.

DDERequest(Int32, String) DDERequest(Int32, String) DDERequest(Int32, String)

Uses an open dynamic data exchange (DDE) channel to request information from the receiving application, and returns the information as a string.

DDETerminate(Int32) DDETerminate(Int32) DDETerminate(Int32)

Closes the specified dynamic data exchange (DDE) channel to another application.

DDETerminateAll() DDETerminateAll() DDETerminateAll()

Closes all dynamic data exchange (DDE) channels opened by Microsoft Word.

DefaultWebOptions() DefaultWebOptions() DefaultWebOptions()

Returns the DefaultWebOptions object that contains global application-level attributes used by Microsoft Word whenever you save a document as a Web page or open a Web page.

Оцените статью
SoftLast
Добавить комментарий