2013-04-29 53 views
1

如何在c#中创建一个word文档的克隆? (Office 2007的库)如何创建Word文档对象的克隆?

public copyDocument (Word.Document _originalDocument) 
{ 
    //How do I clone the _originalDocument? 
    Word.Document clonedDocument = _originalDocument; 

    //Do stuff to cloneDocument without effecting _originalDocument 
} 

所以我想要做的就是抓住原始文件的副本,然后进行更改,而不影响原始文档。有了上面的内容,如果我对cloneDocument进行更改,它们也将应用于_originalDocument。

+0

你试过保存它的一个副本在新的位置,然后打开新的副本? – 2013-04-29 19:12:38

+0

您的代码是否在Word的交互式实例中运行(即作为加载项),其中所述文档也由用户编辑?或者你的应用程序是独立的(在后台运行)? – 2013-04-30 10:57:42

+0

George - Thx但这不是一个选项恐怕:/必须保存在内存中。 – user1255276 2013-04-30 16:47:00

回答

0

由于您使用的Office 2007可能是值得你花时间检查出DocX

DOCX允许您加载或无需打开Word中的幕后在内存中创建的文档(Office 2007中支持的XML类格式)。它速度快,重量轻,甚至不需要安装Word(如果在服务器上部署,则非常方便)。

此外,您可以轻松地复制文件,更改了克隆和保存它,它不会影响原:

DocX testTemplate = DocX.Load("C:\\test.docx"); 
Paragraph p = testTemplate.InsertParagraph("Hello World."); 

DocX testDoc = testTemplate; 
Paragraph p = testDoc.InsertParagraph("Foo."); 

testDoc.SaveAs("C:\\test2.docx"); 
testTemplate.Save(); 

//testTemplate only contains a "Hello World" paragraph 
+0

Thx的建议循环引用,但我不能使用第三方库:( – user1255276 2013-05-01 13:33:08

+0

hm ...我玩过它,但不能重现你的错误,原始文件没有受到影响。如果你仍然在寻找一个答案,你能分享更多的源代码吗? – 2013-05-04 22:58:05