Слияние почты (Excel в Word) с использованием C#

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


person yeahumok    schedule 19.05.2009    source источник
comment
Не то чтобы это сильно меняет ответ, но какую версию Office вы используете?   -  person CoderDennis    schedule 20.05.2009


Ответы (3)


Очень полезный метод изучения того, как автоматизировать определенные действия в 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

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

person pgfearo    schedule 19.05.2009

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

person CoderDennis    schedule 19.05.2009
comment
я пытаюсь взять электронную таблицу Excel и выполнить слияние почты с шаблоном Word - person yeahumok; 20.05.2009

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

person TGnat    schedule 19.05.2009
comment
Слияние почты Word имеет встроенную поддержку чтения файлов Excel, так зачем дополнительный шаг стороннего контроля? - person CoderDennis; 20.05.2009
comment
Он работает как автоматизированный процесс, который сопоставляет клиентские шаблоны с данными клиентов. Мы делаем несколько сотен таких в день. - person TGnat; 20.05.2009