[英]How to copy a word document content in another word document, including bookmarks?
[英]How to copy the content of one word document into another word document?
我有一个带有一些文本和图像的Word文档。 我想使用C#将Word文档的内容复制到另一个Word文档中。
谢谢。
尝试这个。 它应该可以解决问题。 这会将所有内容从第一个文档复制到第二个文档。 确保两个文档都存在。
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);
}
}
下面的功能将向您展示如何打开-从Word文档中关闭和复制。
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();
}
}
试试下面的代码。 这可能对您有帮助。
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);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.