以编程方式将Word文档插入现有文档(Word 2007)

时间:2009-03-27 10:54:52

标签: c# api insert word-2007

我有一个Word 2007文档,我想插入一个现有的Word文档 - 同时保留两个文档的页眉/页脚,图形,边框等。

我在C#中使用Word API执行此操作。

听起来很简单,我的意思是你只需使用“InsertFile”方法...... 除了在Word 2007中,“插入文件”功能现在实际上是“从文件插入文本”,它就是这样 - 省略页面边框,图形和页脚等。

好的,我会使用复制和粘贴,就像这样......

_Document sourceDocument = wordApplication.Documents.Open(insert the 8 million by ref parameters Word requries)
sourceDocument.Activate(); // This is the document I am copying from 
wordApplication.Selection.WholeStory();
wordApplication.Selection.Copy();
targetDocument.Activate(); // This is the document I am pasting into
wordApplication.Selection.InsertBreak(wdSectionBreakNextPage);
Selection.PasteAndFormat(wdFormatOriginalFormatting);
wordApplication.Selection.InsertBreak(wdSectionBreakNextPage);

执行您期望的操作,获取源文档,选择所有内容,复制它然后将其粘贴到目标文档中。因为我在执行粘贴之前添加了分节符,所以它还保留了两个文档的边框,页眉/页脚。

然而 - 现在这就是我遇到问题的地方。如果我粘贴在,那么粘贴包括边框,标题等目标文件。如果我将它粘贴在中间 - 尽管有一个前面的分节符,那么只有文本被粘贴,标题和边框等都会丢失。

4 个答案:

答案 0 :(得分:1)

书签功能是否有效。 InsertFile包含从中获取的参数,可以解决问题。你可能已经考虑过这个了

http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.bookmark.insertfile.aspx

答案 1 :(得分:0)

我实际上正在做类似的事情,并且发现了一个用C#编写的PowerShell cmdlet库,你可能会发现它很有用:

Powertools for Open XML

如果同一图像位于文档的多个部分,但是很多结构都已到位,那么继承的页眉和页脚以及图像引用仍未正确复制仍然是一个小错误。

答案 2 :(得分:0)

这种方式对我有用。仍在寻找更好的解决方案。请务必添加对Interop.Word的引用。我知道这是一个老线程,我正在使用Word 2016,但我搜索了很长时间,不得不将解决方案拼凑在一起。

using Word = Microsoft.Office.Interop.Word;
var wordApp = new Word.Application();
wordApp.Visible = true;
wordApp.Documents.Add(@"C:\workingtemplate.dotx");
//Open is for an existing document. 
//Add is to use a template.
//Get the range to be able to then collapse and have the correct insertion point
var rng = wordApp.ActiveDocument.Range();
rng.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
rng.InsertBreak(Word.WdBreakType.wdPageBreak);
rng.InsertFile(@"C:\temp.docx");

答案 3 :(得分:-2)

将一个词文档插入到另一个词2007文档中 我找到WORD 2007成功的唯一方法是...... 打开要添加页面的文档,然后转到功能区上的“插入”选项卡,查看“文本”部分(与文本框,文字艺术等相同的位置)并选择“对象”,下拉列表出现菜单,然后选择“文件中的文本”。从这里您只需选择要插入的文档及其完成,您可能需要进行一些微调,但所有格式都正确,请务必将光标放在您希望插入新内容的位置。希望这有帮助