在c#中从xml填充word doc

时间:2011-01-14 13:29:40

标签: c# xml ms-word

如何使用c#从xml模板填充word文档。我知道如何打开一个空白文档,但我无法弄清楚如何填充它。

Word.Document wordDoc = wordApp.Documents.Add(ref objMissing,
             ref objMissing, ref objMissing, ref objMissing);
Word.Paragraph wordParagraph = wordDoc.Paragraphs.Add(ref objMissing);

这是我的xml表单的基本外观。

<?xml version="1.0" encoding="utf-8"?>
<Cover>
  <CaseNo>Case No:</CaseNo>
  <Title>Title:</Title>
  <Date>Date:</Date>
</Cover>

我最终想要做的是让用户在c#程序中填写文本框,该程序将填充word文档。

信息不是来自sql数据库

2 个答案:

答案 0 :(得分:1)

您可以使用http://msdn.microsoft.com/en-us/library/bb448854.aspx生成docx文件。这很容易。

使用Office 2007或2010时,您还可以执行以下操作:

  • 在Microsoft Office中创建Word文档,并将word文档从docx重命名为zip。
  • 打开它,你会发现几个xml文件。找到包含实际文档的xml。添加{0},{1}等占位符,以便您可以使用string.Format将数据插入文档中的正确位置。您的应用程序,而不是输入占位符中的数据,并将xml文件重新压缩到docx文件中。

答案 1 :(得分:0)

您需要在word文档中的某个位置标识要获取的信息......

首先,您需要在Word文档中进行选择,然后使用该选择,您只需使用TypeText方法来获取数据。

在这些情况下,我发现用户感到满意的是,在Word模板中定义一组占位符(例如{caseno}或{title}),这是他们可以编辑的内容。然后,您可以搜索占位符,然后将其替换为XML文件中的文本 - 看看Word.Selection.Find