繁体   English   中英

使用 C# 将整个内容从一个 Word 文档复制到另一个

[英]Copy entire content from one Word document to another using C#

我正在尝试使用Microsoft.Office.Interop.Word将整个内容(包括页码和页面布局)从一个 Word 文档复制到另一个文档。 我不能使用 SaveAs 方法,因为我要粘贴内容的文档已经创建并且它包含 VBA 代码。 此外,我无法使用与 XML 相关的代码,因为我复制内容的文档是旧格式。 本文档是使用 VBA 代码将文档上传到服务器数据库的旧方法的一部分。

使用 VBA 代码,我可以毫无问题地复制整个内容。

 Selection.WholeStory
 Selection.Copy
 Windows("document.doc").Activate
 Selection.WholeStory
 Selection.PasteAndFormat (wdFormatOriginalFormatting)

对于 C#,我使用Microsoft.Office.Interop.Word来复制 VBA 代码。

Word.Application objWordOpen = new Word.Application();
objWordOpen.Visible = false;
Word.Document doclocal = objWordOpen.Documents.Open(filepath);

doclocal.ActiveWindow.Selection.WholeStory();
doclocal.ActiveWindow.Selection.Copy();

Document d1 = objWordOpen.Documents.Open(filepath2);
d1.Activate();
d1.ActiveWindow.Selection.WholeStory();
d1.ActiveWindow.Selection.PasteAndFormat(Word.WdRecoveryType.wdFormatOriginalFormatting);

我也试过使用范围

Word.Range oRange = doclocal.Content;
oRange.Copy();

内容被复制到文档中,但没有页眉和页脚。 此外,当使用Selection.WholeStory()方法时,页边距设置不会被复制。 我应该对 c# 代码进行哪些更改才能实现我的结果?

MS Office 应用程序与剪贴板有着复杂的关系。 在可能导致神秘提示的各种优化以及它们支持的众多格式之间,最好不要在CopyPaste之间做任何有趣的事情。

VBA 代码遵循此建议,C# 代码在复制和粘贴之间打开文档。

确保提前打开文档,而不是在复制粘贴中间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM