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,否则肯定是找不到表啦,毕竟还没粘贴呢。