正在做的项目里,需要开发一个小工具,将需要的数据插入到Word文档中。这当中有一项需求,要求能够在Word文档中某处插入表格,或者删除该处表格。

    这个小工具是在VS.Net2005、Office2007下开发的。

    1、在Word文档中插入一个书签,书签名称为“tl”;

    2、在VS2005新建一个C#项目,然后在引用中添加Word类库;由于我使用的是Office2007,因此选择的是"Microsoft Word 12.0 Object Library",如果你使用的是Office2003,就应该选择11.0;

    3、在代码顶部添加对Word类库的引用;

C#在Word文档指定位置处理表格using Word = Microsoft.Office.Interop.Word;

    4、打开Word文档

C#在Word文档指定位置处理表格object missingValue = System.Reflection.Missing.Value;
C#在Word文档指定位置处理表格            
object myTrue = false;                  //不显示Word窗口
C#在Word文档指定位置处理表格
            object fileName = @"F:\Doc1.doc";
C#在Word文档指定位置处理表格            Word._Application oWord 
= new Word.ApplicationClass();
C#在Word文档指定位置处理表格            Word._Document oDoc;
C#在Word文档指定位置处理表格            oDoc 
= oWord.Documents.Open(ref fileName, ref missingValue,
C#在Word文档指定位置处理表格               
ref myTrue, ref missingValue, ref missingValue, ref missingValue,
C#在Word文档指定位置处理表格               
ref missingValue, ref missingValue, ref missingValue,
C#在Word文档指定位置处理表格               
ref missingValue, ref missingValue, ref missingValue,
C#在Word文档指定位置处理表格               
ref missingValue, ref missingValue, ref missingValue,
C#在Word文档指定位置处理表格               
ref missingValue);

    5、找到刚才添加的书签

C#在Word文档指定位置处理表格object tmp = "t1";
C#在Word文档指定位置处理表格                Word.Range startRange 
= oWord.ActiveDocument.Bookmarks.get_Item(ref tmp).Range;

    6、删除在该位置的表格

C#在Word文档指定位置处理表格Word.Table tbl = startRange.Tables[1];
C#在Word文档指定位置处理表格tbl.Delete();

    如果书签所在的位置并没有插入表格,程序并不会删除该位置下面的表格,而是会抛出异常,报错。

    7、插入表格,并划线

C#在Word文档指定位置处理表格//添加表格
C#在Word文档指定位置处理表格
oDoc.Tables.Add(startRange, 54ref missingValue, ref missingValue);
C#在Word文档指定位置处理表格
C#在Word文档指定位置处理表格
//为表格划线
C#在Word文档指定位置处理表格
startRange.Tables[1].Borders[WdBorderType.wdBorderTop].LineStyle = WdLineStyle.wdLineStyleSingle;
C#在Word文档指定位置处理表格startRange.Tables[
1].Borders[WdBorderType.wdBorderLeft].LineStyle = WdLineStyle.wdLineStyleSingle;
C#在Word文档指定位置处理表格startRange.Tables[
1].Borders[WdBorderType.wdBorderRight].LineStyle = WdLineStyle.wdLineStyleSingle;
C#在Word文档指定位置处理表格startRange.Tables[
1].Borders[WdBorderType.wdBorderBottom].LineStyle = WdLineStyle.wdLineStyleSingle;
C#在Word文档指定位置处理表格startRange.Tables[
1].Borders[WdBorderType.wdBorderHorizontal].LineStyle = WdLineStyle.wdLineStyleSingle;
C#在Word文档指定位置处理表格startRange.Tables[
1].Borders[WdBorderType.wdBorderVertical].LineStyle = WdLineStyle.wdLineStyleSingle;

    全部的代码如下:

C#在Word文档指定位置处理表格object missingValue = System.Reflection.Missing.Value;
C#在Word文档指定位置处理表格            
object myTrue = false;                  //不显示Word窗口
C#在Word文档指定位置处理表格
            object fileName = @"F:\Doc1.doc";
C#在Word文档指定位置处理表格            Word._Application oWord 
= new Word.ApplicationClass();
C#在Word文档指定位置处理表格            Word._Document oDoc;
C#在Word文档指定位置处理表格            oDoc 
= oWord.Documents.Open(ref fileName, ref missingValue,
C#在Word文档指定位置处理表格               
ref myTrue, ref missingValue, ref missingValue, ref missingValue,
C#在Word文档指定位置处理表格               
ref missingValue, ref missingValue, ref missingValue,
C#在Word文档指定位置处理表格               
ref missingValue, ref missingValue, ref missingValue,
C#在Word文档指定位置处理表格               
ref missingValue, ref missingValue, ref missingValue,
C#在Word文档指定位置处理表格               
ref missingValue);
C#在Word文档指定位置处理表格            
try
;

    代码很简单,在写这实例的过程中我参考了如下资料:
    Word对象模型概述

    Word任务

相关文章: