MailMerge

MailMerge class

Représente la fonctionnalité de publipostage.

Pour en savoir plus, visitez leFusion et publipostage et création de rapports article documentaire.

public class MailMerge

Propriétés

NomLa description
CleanupOptions { get; set; }Obtient ou définit un ensemble d’indicateurs qui spécifient les éléments qui doivent être supprimés lors du publipostage.
CleanupParagraphsWithPunctuationMarks { get; set; }Obtient ou définit une valeur indiquant si les paragraphes avec des signes de ponctuation sont considérés comme vides et doivent être supprimés si leRemoveEmptyParagraphs l’option est spécifiée.
FieldMergingCallback { get; set; }Se produit lors du publipostage lorsqu’un champ de publipostage est rencontré dans le document.
MailMergeCallback { get; set; }Permet de gérer des événements particuliers lors du publipostage.
MappedDataFields { get; }Renvoie une collection qui représente les champs de données mappés pour l’opération de publipostage.
MergeDuplicateRegions { get; set; }Obtient ou définit une valeur indiquant si toutes les régions de publipostage de documents portant le nom d’une source de données doivent être fusionnées lors de l’exécution d’un publipostage avec des régions par rapport à la source de données ou uniquement la première.
MergeWholeDocument { get; set; }Obtient ou définit une valeur indiquant si les champs de l’ensemble du document sont mis à jour lors de l’exécution d’un publipostage avec des régions.
PreserveUnusedTags { get; set; }Obtient ou définit une valeur indiquant si les balises “moustache” inutilisées doivent être conservées.
RegionEndTag { get; set; }Obtient ou définit une balise de fin de région de fusion et publipostage.
RegionStartTag { get; set; }Obtient ou définit une balise de début de région de fusion et publipostage.
RestartListsAtEachSection { get; set; }Obtient ou définit une valeur indiquant si les listes sont redémarrées à chaque section après l’exécution d’un publipostage.
RetainFirstSectionStart { get; set; }Obtient ou définit une valeur indiquant si leSectionStart de la première section du document et ses copies pour les lignes de source de données suivantes sont conservées lors du publipostage ou mises à jour selon le comportement de MS Word.
TrimWhitespaces { get; set; }Obtient ou définit une valeur indiquant si les espaces de fin et de début sont supprimés des valeurs de publipostage.
UnconditionalMergeFieldsAndRegions { get; set; }Obtient ou définit une valeur indiquant si les champs de fusion et les régions de fusion sont fusionnés quelle que soit la condition du champ IF parent.
UseNonMergeFields { get; set; }Quandvrai , spécifie qu’en plus des champs MERGEFIELD, le publipostage est effectué dans d’autres types de champs et également dans les balises “{{fieldName}}”.
UseWholeParagraphAsRegion { get; set; }Obtient ou définit une valeur indiquant si un paragraphe entier avecDébut de la table ouFin de table field ou plage particulière entreDébut de la table etFin de table les champs doivent être inclus dans la région de publipostage.

Méthodes

NomLa description
DeleteFields()Supprime les champs liés au publipostage du document.
Execute(DataRow)Effectue un publipostage à partir d’unLigne de données dans le document.
Execute(DataTable)Effectue le publipostage d’un DataTable dans le document.
Execute(DataView)Effectue un publipostage à partir d’unVue de données dans le document.
Execute(IDataReader)Effectue un publipostage à partir deIDataReader dans le document.
Execute(IMailMergeDataSource)Effectue un publipostage à partir d’une source de données personnalisée.
Execute(string[], object[])Effectue une opération de publipostage pour un seul enregistrement.
ExecuteADO(object)Effectue un publipostage à partir d’un objet ADO Recordset dans le document.
ExecuteWithRegions(DataSet)Effectue un publipostage à partir d’unBase de données dans un document avec des régions de publipostage.
ExecuteWithRegions(DataTable)Effectue un publipostage à partir d’unTable de données dans le document avec les régions de publipostage.
ExecuteWithRegions(DataView)Effectue un publipostage à partir d’unVue de données dans le document avec les régions de publipostage.
ExecuteWithRegions(IMailMergeDataSource)Effectue un publipostage à partir d’une source de données personnalisée avec des régions de publipostage.
ExecuteWithRegions(IMailMergeDataSourceRoot)Effectue un publipostage à partir d’une source de données personnalisée avec des régions de publipostage.
ExecuteWithRegions(IDataReader, string)Effectue un publipostage à partir deIDataReader dans le document avec les régions de publipostage.
ExecuteWithRegionsADO(object, string)Effectue un publipostage à partir d’un objet ADO Recordset dans le document avec des régions de publipostage.
GetFieldNames()Renvoie une collection de noms de champs de publipostage disponibles dans le document.
GetFieldNamesForRegion(string)Renvoie une collection de noms de champs de publipostage disponibles dans la région.
GetFieldNamesForRegion(string, int)Renvoie une collection de noms de champs de publipostage disponibles dans la région.
GetRegionsByName(string)Renvoie une collection de régions de publipostage portant le nom spécifié.
GetRegionsHierarchy()Renvoie une hiérarchie complète des régions (avec champs) disponibles dans le document.

Remarques

Pour que l’opération de publipostage fonctionne, le document doit contenir les champs Word MERGEFIELD et éventuellement NEXT. Lors de l’opération de publipostage, les champs de fusion du document sont remplacés par les valeurs de votre source de données.

Il existe deux manières distinctes d’utiliser le publipostage : avec et sans régions de publipostage.

Le publipostage le plus simple est sans régions et il est très similaire au fonctionnement de mail merge dans Word. UtiliserExécuter méthodes pour fusionner les informations de la source de données some telle queTable de données ,Base de données ,Vue de données ,IDataReader ou un tableau d’objets dans votre document. Le MailMerge L’objet traite tous les enregistrements de la source de données et copie et ajoute le contenu de l’ensemble du document pour chaque enregistrement.

Notez que lorsqueMailMerge L’objet rencontre un champ NEXT, il sélectionne l’enregistrement suivant dans la source de données et continue la fusion sans copier aucun contenu.

UtiliserExecuteWithRegions et d’autres surcharges pour fusionner des informations dans un document a avec des régions de fusion et de publipostage définies. Vous pouvez utiliser Base de données ,Table de données ,Vue de données ouIDataReader comme sources de données pour cette opération.

Vous devez utiliser des régions de fusion et publipostage si vous souhaitez agrandir dynamiquement des parties à l’intérieur du document . Sans régions de fusion et publipostage, le document entier sera répété pour chaque enregistrement de la source de données.

Exemples

Montre comment exécuter un publipostage avec les données d’un DataTable.

public void ExecuteDataTable()
{
    DataTable table = new DataTable("Test");
    table.Columns.Add("CustomerName");
    table.Columns.Add("Address");
    table.Rows.Add(new object[] { "Thomas Hardy", "120 Hanover Sq., London" });
    table.Rows.Add(new object[] { "Paolo Accorti", "Via Monte Bianco 34, Torino" });

    // Vous trouverez ci-dessous deux manières d'utiliser un DataTable comme source de données pour un publipostage.
    // 1 - Utilisez le tableau entier pour le publipostage afin de créer un document de publipostage de sortie pour chaque ligne du tableau :
    Document doc = CreateSourceDocExecuteDataTable();

    doc.MailMerge.Execute(table);

    doc.Save(ArtifactsDir + "MailMerge.ExecuteDataTable.WholeTable.docx");

    // 2 - Utilisez une ligne du tableau pour créer un document de publipostage en sortie :
    doc = CreateSourceDocExecuteDataTable();

    doc.MailMerge.Execute(table.Rows[1]);

    doc.Save(ArtifactsDir + "MailMerge.ExecuteDataTable.OneRow.docx");
}

/// <summary>
/// Crée un document source de publipostage.
/// </summary>
private static Document CreateSourceDocExecuteDataTable()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.InsertField(" MERGEFIELD CustomerName ");
    builder.InsertParagraph();
    builder.InsertField(" MERGEFIELD Address ");

    return doc;
}

Voir également