【问题标题】:Create a Word document from a template file c#从模板文件 c# 创建 Word 文档
【发布时间】:2014-10-21 19:40:58
【问题描述】:
我正在尝试使用 OpenXML 模板文档在 asp.Net MVC 应用程序中制作 word 文档。
对我来说主要的挑战是
如何创建一个 Word 文档作为 OpenXML 模板?用我的话
文件我有一些文本段落,在每个段落中我
必须从数据库中填写信息,例如在word文件中有
像这样的文本实例
等等,这些应该用实际数据填充。但
我不知道如何将普通的 word 文档转换为 OpenXML
模板文件。
如何用 db 中的数据填充值?如果我有一个模型说 WordModel 手头有属性 FirstName TotalAmount AmountUnit TotalCopies 等的填充值,那么我如何将详细信息填充到模板并允许用户下载文件?
【问题讨论】:
标签:
c#
asp.net-mvc
openxml
【解决方案1】:
您要执行的操作称为邮件合并,这意味着使用您的应用程序数据填充充当模板的 Word 文档。有一些现有的(商业)解决方案,但如果您想使用 Open XML SDK 自己做,您需要设置某种标记机制,用于标记您想要数据的文档的某些部分/应放置来自数据库的文本。对于 Word 文档,您有以下选项:书签、内容控件、合并字段或特殊文本 ()。我个人会选择 Content Controls,因为它们提供了最好的用户体验,而且它们很容易解析和替换。因此,模板将是包含这些标签的普通 word 文档,然后您可以使用 Open XML SDK 解析这些模板,搜索其中的标签并根据标签的名称/代码/标题将它们替换为您的应用程序数据。这是邮件合并处理器的非常抽象的高级图片。当然这样的系统并不容易实现,还要注意使用 Open XML 需要一些学习。有一个类似的question answered,但您可能可以找到更多 - 只需 google。