C# word 操作进阶-05-复制表格

在插入图片或者插入表格、粘贴表格的时候,需要定位到一个位置再操作,例如效果图

word模板,如图

要实现效果图,需要复制表格2次,并且插入文本被测科室:实验室

WordHelper.cs代码如下

//这里要复制的表是word模板中第二张表
word.Table tb2 = wdoc.Tables[2];
tb2.Range.Copy();//复制一下
tb2.Select();//选中表对象,此时光标已经在这张表格上了

//复制后的第一张表:实验室2
object what = word.WdGoToItem.wdGoToLine;
object which = word.WdGoToDirection.wdGoToNext;
object count =3;//光标下移3格
wapp.Selection.GoTo(ref what, ref which, ref count, ref missing);
wapp.Selection.Range.Text = "被测科室:实验室2\n";//插入文本
wapp.Selection.GoTo(ref what, ref which, 1, ref missing);//光标下移1格,不和被测科室这个文本在一块,另起一行
wapp.Selection.Paste();//粘贴表

//复制后的第二张表:实验室3
object what = word.WdGoToItem.wdGoToLine;
object which = word.WdGoToDirection.wdGoToNext;
wapp.Selection.Range.Text = "被测科室:实验室2\n";//插入文本
wapp.Selection.GoTo(ref what, ref which, 1, ref missing);//光标下移1格,不和被测科室这个文本在一块,另起一行
wapp.Selection.Paste();//粘贴表

注意:主要是GoTo方法来实现换行,可以根据实际情况再多下移或者上移几行。

这里并没有赋值的代码,赋值时调用WordHelper中的ReplaceTableRang,其实参数Table,需要根据下标传入,例如复制的是wdoc.Tables[2],当粘贴后,wdoc.Tables[3]就是刚粘贴的表啦,再粘贴一次,就是wdoc.Tables[4],依次类推,注意必须在wapp.Selection.Paste();后面调用ReplaceTableRang,否则肯定是找不到表啦,毕竟还没粘贴呢。

posted @ 2022-07-28 17:09  0Behavior  阅读(458)  评论(0编辑  收藏  举报