我想知道是否有人知道如何使用Excel文件作为数据源进行邮件合并,以填写Word模板上的字段?如果可以的话,我希望使用interop for Word ...但是在找到代码时遇到了一些困难。 有没有人有这方面的语法?提前谢谢。
答案 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文件读入数据表,然后告诉控件将其合并。