C# WORD操作实现代码

2019-12-26 11:14:30刘景俊

第一种情况下,需要注意:在WORD模板中要操作的表格中,不能有纵向合并的单元格,不然程序无法获取到当前要操作对象导致程序报错.单元格的合并,我们可以在程序中控制。 
第二种情况下就需要我们通过程序去直接添加表格了。 
生成表格的代码具体如下: 
1.获取文档中已存在的表格: 
Microsoft.Office.Interop.Word.Table characterTable = doc.Tables[2];//在document对象的集合操作中,起始点是从1开始,并不是从0开始的,此处需要注意。 
2.在文档中直接生成表格,首先要获取插入表格的位置,然后添加表格对象: 
object oEndOfDoc = "endofdoc";//WORD中预定义的书签,还有很多,此处就不一一列举。 
object oMissing = System.Reflection.Missing.Value; 
Range wrdRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range;//获取当前文档的末尾位置。 
wrdRng.InsertAfter(" ");//插入一行,此处不能用 wrdRng.InsertAfter(""),如果用这个,就不能换行,我也不知道为什么。 
复制代码
object oCollapseEnd = Microsoft.Office.Interop.Word.WdCollapseDirection.wdCollapseEnd; 
object oPageBreak = Microsoft.Office.Interop.Word.WdBreakType.wdPageBreak;//分页符 
wrdRng.Collapse(ref oCollapseEnd); 
wrdRng.InsertBreak(ref oPageBreak);//插入了一页 
wrdRng.Collapse(ref oCollapseEnd); 
wrdRng.InsertAfter("图片信息"); 
wrdRng.Font.Size = 20;//指定操作对象的文字大小 
wrdRng.Font.Bold = 1;//指定操作对象的粗体:1为粗体,0为正常 
wrdRng.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;//指定操作区域的文字布局:居中对齐 
//上述代码的意思是:找到当前的末尾位置,然后插入一个分页符,相当于跳到了一个新页,在这个新页的顶端写入文字“图片信息”,并指定文字大小为20,粗体居中显示。 
wrdRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range; 
wrdRng.InsertAfter(" "); 
wrdRng = doc.Bookmarks.get_Item(ref oEndOfDoc).Range; 
wrdRng.InsertParagraphAfter();//插入一个段落,在此段落上插入一个2行一列的表格。 
Microsoft.Office.Interop.Word.Table newTable = doc.Tables.Add(wrdRng, 2, 1, ref oMissing, ref oMissing);
我们还可以对表格进行格式设置,此处我们就不在一一列举。 
3.下面我们分析一下对表格的单元格的操作:合并,拆分。这个就需要我们根据实际表格来进行操作: 
//获取具体的某个单元格(1,1),获取第一行第一列的单元格 
Cell cell = doc.Tables[1].Cell(1,1); 
cell.Range.Text="Text";//指定当前单元格的内容为Text