近日,对通过C#编程操作Word开始感兴趣,收集了一些操作Word的资料.
要操作Word就必须先安装Office PIAs(Office 2003 Primary Interop Assemblies)这个上微软的网站可以下载了。
安装好后。在项目中引用Micrsoft Word 11.0 Object Library
然后当然是:
using Microsoft.Office.Interop.Word
如果要操作Word就要新建一个Application的实例:
Microsoft.Office.Interop.Word.ApplicationClass WordApp =new Microsoft.Office.Interop.Word.ApplicationClass();
一个Word文档对应一个Word对象
Microsoft.Office.Interop.Word.Document WordDoc;Word对象的实例化是通过Application对象的。
新建文档:
object Nothing=Type.Missing;
WordDoc=WordApp.Documents.Add(ref Nothing,ref Nothing,ref Nothing,ref Nothing);新建文档的三个参数可要可不要(个人认为),根据需要而定。
打开文档:
object fileName =@"C:/abc.doc";object mv = Type.Missing;
WordDoc = WordApp.Documents.Open(ref sfn, ref mv, ref mv, ref mv, ref mv, ref mv, ref mv,ref mv, ref mv, ref mv, ref mv, ref mv, ref mv, ref mv, ref mv, ref mv);
实现查找功能:
Microsoft.Office.Interop.Word.Range rContent = WordDoc.Content;rContent.Find.ClearFormatting();object mv = Type.Missing;
object findstr="find";rContent.Find.Execute(ref findstr, ref mv, ref mv, ref mv, ref mv, ref mv,ref mv, ref mv, ref mv, ref mv, ref mv, ref mv, ref mv, ref mv, ref mv)执行Execute返回的是bool值,然后rContent区域的值变为查找到字符串所在的区域!
实现替换功能:
Microsoft.Office.Interop.Word.Find find = WordDoc.Content.Find;find.ClearFormatting();find.Text = strFindText;find.Replacement.ClearFormatting();find.Replacement.Text = strReText;object mv = Type.Missing;
object replaceAll = Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll;
if (find.Execute(ref mv, ref mv, ref mv, ref mv, ref mv, ref mv, ref mv, ref mv, ref mv, ref mv,ref replaceAll, ref mv, ref mv, ref mv, ref mv)){MessageBox.Show("OK");
}忙记说:每次查找前都一定要ClearFormatting(),因为格式会累积的。