C# 如何在Visual Studio中使用邮件逐步合并向导?

C# 如何在Visual Studio中使用邮件逐步合并向导?,c#,visual-studio,ms-word,C#,Visual Studio,Ms Word,我已经有了一个Word文档的模板和数据库,所有字段都在那里,我只想通过“ID1”来创建字母并将它们保存在.pdf中 我之所以对它们进行筛选,是因为我需要使用不同名称的不同部分的.pdf文件,所以我想自动执行“从ID1=x到ID1=y”的多重筛选,并为每个部分保存.pdf文件 我正在使用Visual Studio C# 这是我的代码,我刚刚打开word模板: using System; using System.Collections.Generic; using System.Linq;

我已经有了一个Word文档的模板和数据库,所有字段都在那里,我只想通过“ID1”来创建字母并将它们保存在.pdf中

我之所以对它们进行筛选,是因为我需要使用不同名称的不同部分的.pdf文件,所以我想自动执行“从ID1=x到ID1=y”的多重筛选,并为每个部分保存.pdf文件

我正在使用Visual Studio C#

这是我的代码,我刚刚打开word模板:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Threading.Tasks;
using Microsoft.Office.Interop.Word;

namespace MailMerge
{
    class Program 
    {
        static void Main(string[] args) 
        {
            var application = new Microsoft.Office.Interop.Word.Application();
            var document = new Microsoft.Office.Interop.Word.Document();

            document = application.Documents.Add(Template: @"C:/docPath.docx");
            application.Visible = true;

            Console.Write("Press Enter");
            Console.ReadLine();

            document.Close();
        }
    }
}


你没有按照你提议的方式去做;相反,可以将过滤器作为MailMerge.OpenDataSource方法的SQLStatement参数的一部分提供。如果使用所有必需的参数手动配置mailmerge主文档,则以下Word宏将告诉您需要将哪些内容合并到代码中:

Sub MMTest()
With ActiveDocument.MailMerge
  If .MainDocumentType <> wdNotAMergeDocument Then
    MsgBox "Mail Merge Data Source Name:" & vbCr & .DataSource.Name
    MsgBox "Mail Merge Connect String:" & vbCr & .DataSource.ConnectString
    MsgBox "Mail Merge Query String:" & vbCr & .DataSource.QueryString
  Else
    MsgBox "Not A Merge Document"
  End If
End With
End Sub
Sub-MMTest()
使用ActiveDocument.MailMerge
如果.main文档类型为wdnotamergedic,则
MsgBox“邮件合并数据源名称:”&vbCr&.DataSource.Name
MsgBox“邮件合并连接字符串:&vbCr&.DataSource.ConnectString”
MsgBox“邮件合并查询字符串:”&vbCr&.DataSource.QueryString
其他的
MsgBox“不是合并文档”
如果结束
以
端接头

欢迎来到!这是一个程序员编写自己的代码并在试图自己解决某个特定问题后与之共享问题的网站。如果您在现有答案后有特殊问题,请在您的帖子中分享一些背景信息以及您的代码和相关数据。更多提示请点击此处:“”和中的,以及来自网站顶级用户的提示。也请花时间裁剪你的截图。祝你好运!这里没有足够的信息为您提供答案。在UI中执行要使用的步骤时,尝试录制宏。这将为您提供对象、属性和方法-这将是VBA,但这至少将提供一个起点。我有一个问题,我的文档作为wdNotAMergeDocument返回,问题是什么或者如何创建margedDocumentType这里是我在c#中的代码:
var application=new Microsoft.Office.Interop.Word.application();var document=新的Microsoft.Office.Interop.Word.document();document=application.Documents.Add(模板:@“C:/docPath.docx”);var app=application.ActiveDocument.MailMerge;如果(app.MainDocumentType!=WdMailMergeMainDocType.wdNotAMergeDocument){}
很抱歉此处的格式为im new如果您正在进行邮件合并,并且您使用的文档尚未保存为邮件合并主文档,或者您正在抑制SQL消息,则需要告诉Word为邮件合并配置文档。这里有大量的C代码,您可以根据自己的需要进行调整(例如)。