答案将稍微取决于应用程序是在服务器上运行还是在客户机上运行。如果您在服务器上运行,那么您将需要使用基于 XML 的办公生成格式之一,因为在 在服务器上使用办公室套装软件比较时会出现一些问题。
但是,如果您在客户机上工作,那么您可以选择使用 用办公室套装软件比较或 Office Open XML 格式(请参阅下面的链接) ,这是由 Microsoft Office 2000支持的,并且可以通过本机或通过服务包进行支持。不过,这样做的一个缺点是,您可能无法嵌入您希望显示的某些类型的图形或图像。
查看 VSTO (VisualStudioToolsforOffice)。创建一个 Word 模板,将一个 xml 数据岛注入其中,然后将其发送到客户机,这是相当简单的。当用户在 Word 中打开文档时,Word 读取 xml 并将其转换为 WordML 并呈现它。您需要查看 VSTO 库的 ServerDocument 类。根据我的经验,不需要额外的许可证。
我花了一个星期左右的时间来了解 Office Open XML的最新情况。我们有一个数据库应用程序,它存储要在 MicrosoftWord 中报告的调查数据。实际上,您可以在 C # 中从头创建 Word2007(docx)文件。Open XML SDK 版本2包含一个很酷的应用程序,名为 Document Refector,它实际上提供了 C # 代码来完全重新创建 Word 文档。您可以使用部分或全部代码,并替换您想要动态更改的位。SDK 中包含的帮助文件也有一些很好的代码示例。
我写了一个 关于开放 XML WordprocessingML 文档生成的博客文章系列。我的方法是创建一个包含内容控件的模板文档,并在每个内容控件中编写一个 XPath 表达式,该表达式定义如何从包含驱动文档生成过程的数据的 XML 文档中检索内容。该代码是免费的,并且是根据 Microsoft 互惠许可证(Ms-RL)授权的。在同一个博客文章系列中,我还探索了一种在内容控件中编写 C # 代码的方法。然后,文档生成过程处理模板文档,并生成生成所需文档的 C # 程序。这种方法的一个优点是可以使用 任何数据源作为文档生成过程的数据源。该代码也是在 Microsoft 互惠许可证下授权的。
WordDocumentGenerator 是一个用于生成 Word 文档的实用工具
使用 Visual Studio 2010和 Open XML 2.0 SDK 的模板。
WordDocumentGenerator 帮助生成 Word 文档
基于预定义模板的不可刷新和可刷新
内容控件用作占位符
它支持 Word2007和 Word2010。