本文是應在ASP.NET裡創建Microsoft Word文檔之需而寫的。這篇文章演示了在ASP.Net裡怎麼創建和修改Microsoft Word文檔。
[背景]
自動化是一種能讓各種語言編寫的(如:Visual Basic.Net或C#)應用程序在程序級別上控制其他應用程序。
對於Word的自動化允許你執行諸如創建新的文檔,向文檔裡添加文本,郵件合並和格式化文檔這些操作。在Word和其他的Microsoft Office程序裡,那些通過用戶接口進行的可視化操作也可以通過程序級別的自動化來實現。
Word通過對象模型把這個程序可操作的功能向外提供了使用接口。
對象模型是一組類和方法的集合,這些類和方法與Word的邏輯組件構成對應。例如,他可能是應用程序對象,文檔對象,段落對象,每一個對象都包含了Word組件的功能。
[建立工程]
在.Net裡操作Word的第一步就是添加COM引用到你的工程裡,通過右鍵點擊Solution Explorer的Reference,Add Reference。選擇COM選項卡,查找Microsoft Word 10.0 Object Library。點擊選擇,OK。
這將把封裝有Word的COM的程序集自動的添加到應用程序目錄裡。
現在,你可以建立一個Word的實例了:
Word.ApplicationClass oWordApp = new Word.ApplicationClass();
你可以調用Word提供給你的方法和屬性來操縱Word文檔。
學習如何使用Word,Excel,PowerPoint的對象模型最好的途徑就是使用在這些Office應用裡使用Macro Recorder:
1.在Tools菜單的Macro選項裡選擇 Record New Macro ,並且執行你有興趣的任務。
2.在Tools菜單的Macro選項裡選擇 Stop Recording。
3.如果你進行了紀錄,選擇Tools菜單的Macro選項裡的Macros,找到你記錄的宏,你可以編輯它。
上面的操作產生了VBA代碼來完成你記錄的任務。需要注意的是,宏在大多數情況下不是最好的代碼,但是它提供了一種便捷和可用的方法。
下面例子打開並添加一寫文字:
object fileName = "c:\\database\\test.doc";
object readOnly = false;
object isVisible = true;
object missing = System.Reflection.Missing.Value;
Word.ApplicationClass oWordApp = new Word.ApplicationClass();
Word.Document oWordDoc = oWordApp.Documents.Open(ref fileName, ref missing,ref readOnly,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref isVisible,ref missing,ref missing,ref missing);
oWordDoc.Activate();
oWordApp.Selection.TypeText("This is the text");
oWordApp.Selection.TypeParagraph();
oWordDoc.Save();
oWordApp.Application.Quit(ref missing, ref missing, ref missing);
如果創建一個新文檔並保存是這樣寫的:
Word.ApplicationClass oWordApp = new Word.ApplicationClass();
Word.Document oWordDoc = oWordApp.Documents.Add(ref missing, ref missing,ref missing, ref missing);
oWordDoc.Activate();