Question posted 2009 · +5 upvotes
I am using Word and OpenXml to provide mail merge functionality in a C# ASP.NET web application:
1) A document is uploaded with a number of pre-defined strings for substitution.
2) Using the OpenXML SDK 2.0 I open the Word document, get the mainDocumentPart as a string and perform the substitution using Regex.
3) I then create a new document using OpenXML, add a new mainDocumentPart and insert the string resulting from the substitution into this mainDocumentPart.
However, all formatting/styles etc. are lost in the new document.
I’m guessing I can copy and add the Style, Definitions, Comment parts etc.. individually to mimic the orginal document.
However is there a method using Open XML to duplicate a document allowing me to perform the substitutions on the new copy?
Thanks.
Accepted answer +8 upvotes
This piece of code should copy all parts from an existing document to a new one.
using (var mainDoc = WordprocessingDocument.Open(@"c:sourcedoc.docx", false))
using (var resultDoc = WordprocessingDocument.Create(@"c:newdoc.docx",
WordprocessingDocumentType.Document))
{
// copy parts from source document to new document
foreach (var part in mainDoc.Parts)
resultDoc.AddPart(part.OpenXmlPart, part.RelationshipId);
// perform replacements in resultDoc.MainDocumentPart
// ...
}
Word VBA objects referenced (4)
WordprocessingDocument.Create— Create an HTML File with a Table of Contents based on Cell DataWordprocessingDocument.Create— Create a Custom Dialog BoxWordprocessingDocumentType.Document— Exporting a Range to a Table in a Word DocumentWordprocessingDocumentType.Document— Add Controls to a Document
Top ms-word Q&A (6)
- XML – adding new line +19 (2012)
- How to open and manipulate Word document/template in Java? +18 (2012)
- Why does the file utility identify Microsoft Word files as CDF? What is this CDF? +15 (2011)
- Version Control for word documents +13 (2008)
- programatically convert word docx to doc without using ole automation +13 (2008)
- What makes Microsoft-Word-generated HTML documents so large in code? +12 (2015)
ms-word solutions on this site
.