使用C#邮件合并(Excel到Word)

时间:2009-05-19 20:58:26

标签: c# email interop ms-word mailmerge

我想知道是否有人知道如何使用Excel文件作为数据源进行邮件合并,以填写Word模板上的字段?如果可以的话,我希望使用interop for Word ...但是在找到代码时遇到了一些困难。 有没有人有这方面的语法?提前谢谢。

3 个答案:

答案 0 :(得分:3)

学习如何在MS Word中自动执行特定操作的一种非常有用的方法是在启用“记录宏”的情况下手动执行操作。

一旦你拥有了VBA宏,它很容易将其转换为VB.NET或使用互操作的C#。我倾向于首先在Word中手动调整VBA,这样我就可以在使用互操作层转换为.NET语言之前先测试它。

我对mailmerge了解不多,但这是我记录宏时生成的一些VBA:

ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
ActiveDocument.MailMerge.OpenDataSource Name:= _
    "c:\Arrays.xlsx", ConfirmConversions:=False, _
     ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False, _
    PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", _
    WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _
    Connection:= _
    "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=c:\Arrays.xlsx;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Loc" _
    , SQLStatement:="SELECT * FROM `Sheet1$`", SQLStatement1:="", SubType:= _
    wdMergeSubTypeAccess

我没有在这里提供完整的代码,但希望这会给你一些想法。

答案 1 :(得分:0)

Word(至少在2007版本中,我正在查看)可以开箱即用。只需选择Excel文件作为数据源即可。您在代码中尝试做什么?

答案 2 :(得分:0)

我使用this第三方控制。您可以将xls文件读入数据表,然后告诉控件将其合并。