服务器端进行MailMerge

最近开发项目时,有一个模块需求如下:
用户筛选出客户信息后,选择需要Merge的字段,再选择Template Word模板,点击Merge后即可下载Merge后的文档。参照Microsoft的Dynamic CRM等相关资料,发现Merge操作通过在服务器端生成数据文件和Template模板下载到客户端后,在客户端进行Merge操作。在客户端装插件或者宏操作。由于项目是B/S架构,所以考虑客户端Office版本问题,还有在客户端操作的话在打开Word文档时会选择数据源,对于Office初学者会造成意想不到的结果,在客户端进行Merge也会加大将来软件的维护成本,故在服务器端进行Merge操作后直接返回Merge后的文档。

由于在服务器端进行Merge操作,故需要用Com组件,这里我用了 Microsoft.Word12.0   组件,实现接口如下:

String MailMergeWord(String templateFilePath, MergeData data)

MergeData类
+XmlFilePath
+XmlUrl
+XmlString
+List<Dictionary<String,String>> MegerDataList

MergeData中MegerDataList是数据源,它按优先级从高到低MergeDataList,XmlString,XmlFilePath,XmlUrl依次查找,如果前一值不存在才通过后一值赋值给MegerDataList。

MailMergeWord思想如下:
1.打开Template文档
2.由MergeDataList生成新的文档,并且作为Template的数据源
3.Merge生成新的文档Save,提取文档名,返回。

第一个打分

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

相关文章

添加评论


 


  • 评论
  • 在线预览
Loading