为.NET应用程序进行邮件合并的最佳方法?

时间:2013-09-13 03:04:34

标签: .net asp.net-mvc-4

目前我正在开发一个MVC应用程序。我得到了一个单词模板,我需要用它来创建邮件合并。合并的数据在数据库中,我可以动态创建邮件合并文档吗?以前有人这样做过吗?你用过什么工具?任何有用的提示?

基本上,创建邮件合并的过程将是,用户点击一个按钮,该按钮依次获取模板并使用数据填充它(将返回几百条记录),当邮件合并完成时,我想返回一个单词文档,其中包含其中的所有字母。

由于

3 个答案:

答案 0 :(得分:4)

我遇到了这个问题,不幸的是有3个解决方案,在某些方面都很糟糕:

OOXML API

使用Office Open XML API:http://www.microsoft.com/en-us/download/details.aspx?id=5124 - 并手动遍历Document XML树以检查邮件合并元素,自己执行文本替换,然后保存。

优点:

缺点

  • 在放弃之前我花了6个月的时间强调这种方法
  • 没有内置的邮件合并API
  • 简单的合并字段替换很简单,但是复杂字段分布在几个<w:run>元素上,这些元素很难替换。奖励:自Word 2010以来,所有新字段都是复杂类型。
  • 仅支持OOXML文件(.docx)。不支持Word 97-2003文件(.doc)。

Aspose Saas(以前的Saaspose)API

优点:

  • 便宜(每月15美元起)
  • 适用于所有Word文件格式
  • 简单,完成工作

缺点

  • 如果你想做更多的事情而不是简单的字段替换(即重复区域,“如果......然后......”显示/隐藏逻辑,使用复杂的数据结构作为数据源)那么你就是SOL
  • 这是一项网络服务,因此您始终需要从服务器到他们的连接
  • 他们的“.NET SDK”设计非常糟糕(例如,应该是静态的实例方法)。我写了自己的替代品,我可能应该在某个时候上传它。
  • 他们的文档也不是最好的,虽然最近这可能有所改善,但是试图导航它的好运。

Aspose Words

优点

  • 它正常工作
  • 非常强大,执行任何类型的合并和字段操作,包括使用您自己的复杂数据源
  • 来自开发者的优质支持服务

缺点

  • 贵。单用户/单站点许可证的起价为999美元。如果您正在开发SaaS应用程序,那么您需要3000美元的许可证。

答案 1 :(得分:1)

首先:不要使用互操作,因为它在服务器环境中不能很好地工作(参见Microsoft的KB 257757)。

我对Docentric Toolkit有很好的经验。我已经使用它三年了。所以这是它的优点和缺点:

优点:

  • 用于模板生成的简单Word插件
  • 基于OpenXML,服务器端友好
  • 支持图像,数据绑定图表,表格
  • 模板中的条件元素
  • 支持页眉和页脚中的占位符
  • 非常快速的报告生成

缺点:

  • 不自由
  • 对PDF输出的支持较少

答案 2 :(得分:0)

你尝试过NTemplates吗?不完全适用于Word文档,但如果您不介意使用RTF,则可能是解决方案。从ntemplates.codeplex.com免费下载完整的源代码和示例