Mail Merge (Excel to Word) с использованием C # - PullRequest
1 голос
/ 20 мая 2009

Мне было интересно, знает ли кто-нибудь, как выполнить слияние по почте, используя файл Excel в качестве источника данных, для заполнения полей в шаблоне Word? Я хотел бы использовать взаимодействие для Word, если бы мог ... но у меня возникли некоторые трудности с поиском кода для этого. У кого-нибудь есть синтаксис для этого? Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 20 мая 2009

Очень полезный метод для изучения того, как автоматизировать определенные действия в MS Word, состоит в том, чтобы фактически выполнить действие вручную с включенным «макросом записи».

Если у вас есть макрос VBA, его достаточно просто преобразовать в VB.NET или C #, использующий взаимодействие. Я склонен сначала настраивать VBA вручную в Word, чтобы потом можно было сначала проверить это, прежде чем перейти на язык .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

Я не включил здесь полный код, но, надеюсь, это даст вам некоторые идеи.

0 голосов
/ 20 мая 2009

Я использую это сторонний контроль. Вы можете прочитать свой файл xls в таблицу данных, а затем указать элементу управления объединить его.

0 голосов
/ 20 мая 2009

Word (по крайней мере, в версии 2007, на которую я смотрю) может сделать это из коробки. Просто выберите файл Excel в качестве источника данных. Что вы пытаетесь сделать в своем коде?

...