我爱Aspx >> C#.Net >> c# 实现Word联接Excel的MailMerge功能_C#应用
目标:使用word的MailMerge功能,数据源是Excel中的数据。这些资料在网上很少,只能自己慢慢测试了。
关于Word的MailMerge功能:
word提供邮件的模板,可以选择各种数据源,比如数据库,excel等,然后群发(或打印、另存文件)邮件。
为了实现这个功能,我的程序要能做的是
1:打开word文件对象
2:设置MailMerge数据源:指定Excel,指定查询语句,指定联接的列s
3:关闭保存
关于引用:
using Word = Microsoft.Office.Interop.Word;
using System.Reflection;
using System.Diagnostics;
using System.IO;
关于变量:word的com对象需要传入的参数定义
Word.Application WordApp = new Microsoft.Office.Interop.Word.Application();
object missing = System.Reflection.Missing.Value;
object falseValue = false;
object trueValue = true;
关于处理
需要注意的是
1:打开word的方式
2:query的写法。类似于sql一般,比较好玩。
3:设置列,。设置之后,在word中可以看见这些列。
4:关闭word之后,还得再copy一次excel。直接生成之后的excel文件size暴涨,文件还打不开,所以覆盖一遍了之。原因不详。
private void button1_Click(object sender, EventArgs e)
{
object fileName = CopyTemplateDoc();//copy doc in
Word.Document doc = WordApp.Documents.Open(ref fileName, ref missing, ref falseValue, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref trueValue, ref missing, ref missing, ref missing);
object linkTo = CopyExcelData();//copy excel data
object query = "SELECT * FROM `Sheet1$`";//data from sheet1
object header = "Name,Category,Address,Content";//filed list
try
{
doc.MailMerge.CreateDataSource(ref linkTo, ref missing, ref missing, ref header, ref falseValue, ref query, ref missing, ref missing, ref trueValue);
Ҷƪл˵?
C# Operate Excel File _C#应用[04-28]
如何用C#来部署数据库 _C#应用[04-28]
.Net框架集WebClient类向WinCE平..[04-28]
C#图像放大问题解决方法_C#应用[04-28]
使用c#捕获windows的关机事件_C#..[04-28]
关于正则表达式匹配无异常资源耗..[04-28]
C#分析数据库结构,使用XSL模板自..[04-28]
在c#中执行sql语句时传递参数的小..[04-28]
c#时间增加并对比做法_C#教程[04-28]
C# 编码规范和编程好习惯_C#教程[04-28]
C# Operate Excel File _C#应用[04-28]
如何用C#来部署数据库 _C#应用[04-28]
.Net框架集WebClient类向WinCE平..[04-28]
C#图像放大问题解决方法_C#应用[04-28]
使用c#捕获windows的关机事件_C#..[04-28]
关于正则表达式匹配无异常资源耗..[04-28]
C#分析数据库结构,使用XSL模板自..[04-28]
在c#中执行sql语句时传递参数的小..[04-28]
c#时间增加并对比做法_C#教程[04-28]
C# 编码规范和编程好习惯_C#教程[04-28]