7

我想生成一个 word 文档 (.docx) 文件,该文件基于模板可以是 word 模板,也可以将文本存储在代码中。

现在生成的文档应该基于用户提供的输入,使用带有文本框的 ASP.net Web 表单来输入值。

这些值将被获取并放置在单词模板中的占位符位置。

  1. 如何在 ASP.net Web 项目中使用 word 模板?
  2. 如何从 ASP.net 网络表单中获取值并将其传递给 word 模板,用文本填充占位符,然后生成 word 文档?

我已经看到了一些示例,其中要生成的文本被创建为 HTML,然后导出的文件被赋予文件类型 msword 以保存为 word 文件。但在这种情况下,我想知道如何为生成的文档提供页码和其他页眉或页脚值。

因此,如果我可以使用 word 模板,只需填写用户想要的值,然后生成最终文档,那就太好了。

在 Visual Studio 2012 中有什么新功能吗?我正在尝试使用 C# 来做到这一点。

4

3 回答 3

8

您有多种创建 word 文档的选项 -

  1. 使用单词自动化 - 这是直接使用 Ms Word。如果您在服务器上运行,则不推荐使用 - 它速度慢并且存在可扩展性和其他问题。

  2. 使用 OpenXML - 这是 Microsoft 用于处理 Office 2007+ 文件格式的 SDK。有几种方法可以使用 OpenXML 实现您的目标 - 例如使用书签或内容控件。看看这个 SO 问题 - How to replace content in template docx document and Open XML SDK 2.0 (Aug 09)? 或者这个 -如何从 C# 中的模板创建 *.docx 文件或谷歌它(虽然不是那么困难,但整个解决方案更多的是几行代码,并且确实需要一些理解)

  3. 使用第三方工具或控件——我对它们不是很熟悉。

于 2013-08-04T19:01:46.797 回答
4

您可以通过创建 Word 文档(包括徽标、页眉、页脚等)、放置占位符并将其保存为“Word 2003 xml”文档来创建模板。

接下来,您可以将 template.xml 读取为文本文件,将占位符替换为值,并将整个字符串响应为内容类型“application/msword”

占位符可以是 {MY_PLACEHOLDER1}

在创建模板之前,您必须停用(在 Word 中)所有与 Ortography 相关的内容,因为“bad ortography”突出显示存储为 xml 文档的一部分,并且 {MY_PLACEHOLDER1} 可以存储为 MY_PLACEHOLDER1(“{”和“ }" 字符与它们自己的单词 xml 标签分开存储)

问候,

于 2014-04-01T23:28:27.527 回答
2

您可以使用TemplateEngine.Docx替换模板文档中的文本

于 2014-04-06T06:14:22.713 回答