C#用OpenXml填充word模板

时间:2015-04-07 09:47:34

标签: c# ms-word openxml

我想创建一个基于带有内容控件的模板的新Word文档。

我需要填写那些内容控件(文本)。

我只找到了如何生成新的Word文档,但没有基于模板。

您有任何链接或教程吗?

使用OpenXml填充模板可能是错误的吗?

        // Create a Wordprocessing document. 
        using (WordprocessingDocument myDoc =
               WordprocessingDocument.Create("d:/dev/test.docx",
                             WordprocessingDocumentType.Document))
        {
            // Add a new main document part. 
            MainDocumentPart mainPart = myDoc.AddMainDocumentPart();
            //Create Document tree for simple document. 
            mainPart.Document = new Document();
            //Create Body (this element contains
            //other elements that we want to include 
            Body body = new Body();
            //Create paragraph 
            Paragraph paragraph = new Paragraph();
            Run run_paragraph = new Run();
            // we want to put that text into the output document 
            Text text_paragraph = new Text("Hello World!");
            //Append elements appropriately. 
            run_paragraph.Append(text_paragraph);
            paragraph.Append(run_paragraph);
            body.Append(paragraph);
            mainPart.Document.Append(body);
            // Save changes to the main document part. 
            mainPart.Document.Save();
        } 

1 个答案:

答案 0 :(得分:0)

使用OpenXML是正确的方法,因为您可以在不需要安装MS Word的情况下操作文档 - 想想服务器方案。然而,它的学习曲线陡峭乏味。在我看来,最好的方法是要求预算购买第三方工具包,并专注于业务领域,而不是OpenXML调整。

在您的示例中,您在Word中有一个模板,并希望使用数据更新(合并)它。对于我们的一些场景,我使用Docentric Toolkit完成了此操作,并且它运行良好。一旦了解了它的工作原理,就可以快速创建解决方案。如果你被困在DT的家伙不会让你失望。请参阅此链接(http://www.codeproject.com/Articles/759408/Creating-Word-documents-in-Net-using-Docentric-Too)以了解如何使用它。默认情况下它会创建.docx,但您也可以获得固定的最终文档(pdf或xps)。