How to copy the content of one word document into another word document?

后端 未结 3 803
一整个雨季
一整个雨季 2021-01-16 16:47

I have a word document with some Text and Images. I want to copy the content of the word document into another word document using C#.

Thanks.

相关标签:
3条回答
  • 2021-01-16 17:08

    Try the below code . This may help you .

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Microsoft.Office.Interop.Word;
    using System.Runtime.InteropServices;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                var app = new Microsoft.Office.Interop.Word.Application();
                var sourceDoc =    app.Documents.Open(@"D:\test.docx");
    
                sourceDoc.ActiveWindow.Selection.WholeStory();
                sourceDoc.ActiveWindow.Selection.Copy();
    
                var newDocument = new Microsoft.Office.Interop.Word.Document();
                newDocument.ActiveWindow.Selection.Paste();
                newDocument.SaveAs(@"D:\test1.docx");
    
                sourceDoc.Close(false);
                newDocument.Close();
    
                app.Quit();
    
                Marshal.ReleaseComObject(app);
                Marshal.ReleaseComObject(sourceDoc);
                Marshal.ReleaseComObject(newDocument);
            }
        }
    }
    
    0 讨论(0)
  • 2021-01-16 17:16

    Below function will show you how to open - close and copy from word doc.

    using MsWord = Microsoft.Office.Interop.Word;
    private static void MsWordCopy()
        {
            var wordApp = new MsWord.Application();
            MsWord.Document documentFrom = null, documentTo = null;
    
            try
            {
                var fileNameFrom = @"C:\MyDocFile.docx";               
    
                wordApp.Visible = true;
    
                documentFrom = wordApp.Documents.Open(fileNameFrom, Type.Missing, true);
                MsWord.Range oRange = documentFrom.Content;
                oRange.Copy();
    
                var fileNameTo = @"C:\MyDocFile-Copy.docx";
                documentTo = wordApp.Documents.Add();
                documentTo.Content.PasteSpecial(DataType: MsWord.WdPasteOptions.wdKeepSourceFormatting);
                documentTo.SaveAs(fileNameTo);              
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
    
            finally
            {
                if (documentFrom != null)
                    documentFrom.Close(false);
    
                if (documentTo != null)
                    documentTo.Close();
    
                if (wordApp != null)
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(wordApp);
    
                wordApp = null;
                documentFrom = null;
                documentTo = null;
    
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
        }
    
    0 讨论(0)
  • 2021-01-16 17:21

    Try this. It should do the trick. This will copy all contents from first document to second document. Make sure both documents exists.

    using (WordprocessingDocument firstDocument = WordprocessingDocument.Open(@"E:\firstDocument.docx", false))
    using (WordprocessingDocument secondDocument = WordprocessingDocument.Create(@"E:\secondDocument.docx", WordprocessingDocumentType.Document))
    {
        foreach (var part in firstDocument.Parts)
        {
            secondDocument.AddPart(part.OpenXmlPart, part.RelationshipId);
        }
    }
    
    0 讨论(0)
提交回复
热议问题