【问题标题】:Mail Merge (Excel to Word) using C#使用 C# 进行邮件合并(Excel 到 Word)
【发布时间】:2009-05-19 20:58:26
【问题描述】:

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

【问题讨论】:

  • 并不是说它改变了答案,而是你使用的是什么版本的 Office?

标签: c# email interop ms-word mailmerge


【解决方案1】:

学习如何在 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

我没有在这里包含完整的代码,但希望这能给你一些想法。

【讨论】:

    【解决方案2】:

    Word(至少在 2007 版本中,这是我正在研究的)可以开箱即用地做到这一点。只需选择 Excel 文件作为数据源。你想在你的代码中做什么?

    【讨论】:

    • 我正在尝试使用 Excel 电子表格并使用 Word 模板执行邮件合并
    【解决方案3】:

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

    【讨论】:

    • Word 的邮件合并原生支持读取 Excel 文件,为什么还要额外的第 3 方控件步骤呢?
    • 它作为一个自动化过程运行,将客户模板与客户数据相匹配。我们每天做几百个这样的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    相关资源
    最近更新 更多