我使用Microsoft.Office.Interop.Word
和此代码使用C#
:复制Word
文档的部分
var R1 = FindRange(Document);
R1.Copy();
var R2 = Document.Range(R1.End, R1.End);
R2.Paste();
范围部分包含各种元素,如段落和表格。这段代码基本上是复制/粘贴文档的部分,并且运行良好。
有没有其他方法可以在不使用Copy()
和Paste()
函数的情况下获得与使用剪贴板相同的结果(这是一个大问题)?
我同意使用剪贴板是个坏主意。
下面是一个基于XML的示例,它将名为"Document2"的源文档中名为"bookmark"的书签的内容复制到当前的Selection
范围。
void XmlDemo()
{
var wordApp = Globals.ThisAddIn.Application;
var docSource = wordApp.Documents["Document2"];
var rngTarget = wordApp.Selection.Range;
var rngSource = docSource.Bookmarks["bookmark"].Range;
rngTarget.InsertXML(rngSource.XML);
}
我没有意识到它的局限性,但我只是测试了它,可以轻松地复制一些文本、表格和形状。
备选方案
如以下注释中所述,另一种选择是使用Range
:的FormattedText属性
R2.FormattedText = R1.FormattedText;