MailMerge

MailMerge class

Representa la funcionalidad de combinación de correspondencia.

Para obtener más información, visite elCombinación de correspondencia e informes artículo de documentación.

public class MailMerge

Propiedades

NombreDescripción
CleanupOptions { get; set; }Obtiene o establece un conjunto de indicadores que especifican qué elementos se deben eliminar durante la combinación de correspondencia.
CleanupParagraphsWithPunctuationMarks { get; set; }Obtiene o establece un valor que indica si los párrafos con signos de puntuación se consideran vacíos y deben eliminarse si elRemoveEmptyParagraphs se especifica la opción.
FieldMergingCallback { get; set; }Ocurre durante la combinación de correspondencia cuando se encuentra un campo de combinación de correspondencia en el documento.
MailMergeCallback { get; set; }Permite manejar eventos particulares durante la combinación de correspondencia.
MappedDataFields { get; }Devuelve una colección que representa campos de datos asignados para la operación de combinación de correspondencia.
MergeDuplicateRegions { get; set; }Obtiene o establece un valor que indica si todas las regiones de combinación de correspondencia del documento con el nombre de una fuente de datos deben fusionarse al ejecutar una combinación de correspondencia con regiones en la fuente de datos o solo la primera.
MergeWholeDocument { get; set; }Obtiene o establece un valor que indica si los campos de todo el documento se actualizan durante la ejecución de una combinación de correspondencia con regiones.
PreserveUnusedTags { get; set; }Obtiene o establece un valor que indica si se deben conservar las etiquetas “bigote” no utilizadas.
RegionEndTag { get; set; }Obtiene o establece una etiqueta final de región de combinación de correspondencia.
RegionStartTag { get; set; }Obtiene o establece una etiqueta de inicio de región de combinación de correspondencia.
RestartListsAtEachSection { get; set; }Obtiene o establece un valor que indica si las listas se reinician en cada sección después de ejecutar una combinación de correspondencia.
RetainFirstSectionStart { get; set; }Obtiene o establece un valor que indica si elSectionStart de la primera sección del documento y sus copias para las filas de origen de datos posteriores se conservan durante la combinación de correspondencia o se actualizan según el comportamiento de MS Word.
TrimWhitespaces { get; set; }Obtiene o establece un valor que indica si los espacios en blanco iniciales y finales se recortan de los valores de combinación de correspondencia.
UnconditionalMergeFieldsAndRegions { get; set; }Obtiene o establece un valor que indica si los campos de combinación y las regiones de combinación se combinan independientemente de la condición del campo IF principal.
UseNonMergeFields { get; set; }cuandoverdadero , especifica que además de los campos MERGEFIELD, la combinación de correspondencia se realiza en otros tipos de campos y también en las etiquetas “{{fieldName}}”.
UseWholeParagraphAsRegion { get; set; }Obtiene o establece un valor que indica si el párrafo completo conInicio de tabla oFin de la tabla field o rango particular entreInicio de tabla yFin de la tabla Los campos deben incluirse en la región de combinación de correspondencia.

Métodos

NombreDescripción
DeleteFields()Elimina los campos relacionados con la combinación de correspondencia del documento.
Execute(DataRow)Realiza combinación de correspondencia desde unfila de datos en el documento.
Execute(DataTable)Realiza combinación de correspondencia desde una tabla de datos en el documento.
Execute(DataView)Realiza combinación de correspondencia desde unVista de datos en el documento.
Execute(IDataReader)Realiza combinación de correspondencia desdeLector de datos en el documento.
Execute(IMailMergeDataSource)Realiza una combinación de correspondencia desde una fuente de datos personalizada.
Execute(string[], object[])Realiza una operación de combinación de correspondencia para un solo registro.
ExecuteADO(object)Realiza una combinación de correspondencia desde un objeto Recordset de ADO en el documento.
ExecuteWithRegions(DataSet)Realiza combinación de correspondencia desde unConjunto de datos en un documento con regiones de combinación de correspondencia.
ExecuteWithRegions(DataTable)Realiza combinación de correspondencia desde unTabla de datos en el documento con regiones de combinación de correspondencia.
ExecuteWithRegions(DataView)Realiza combinación de correspondencia desde unVista de datos en el documento con regiones de combinación de correspondencia.
ExecuteWithRegions(IMailMergeDataSource)Realiza una combinación de correspondencia desde una fuente de datos personalizada con regiones de combinación de correspondencia.
ExecuteWithRegions(IMailMergeDataSourceRoot)Realiza una combinación de correspondencia desde una fuente de datos personalizada con regiones de combinación de correspondencia.
ExecuteWithRegions(IDataReader, string)Realiza combinación de correspondencia desdeLector de datos en el documento con regiones de combinación de correspondencia.
ExecuteWithRegionsADO(object, string)Realiza una combinación de correspondencia desde un objeto Recordset de ADO en el documento con regiones de combinación de correspondencia.
GetFieldNames()Devuelve una colección de nombres de campos de combinación de correspondencia disponibles en el documento.
GetFieldNamesForRegion(string)Devuelve una colección de nombres de campos de combinación de correspondencia disponibles en la región.
GetFieldNamesForRegion(string, int)Devuelve una colección de nombres de campos de combinación de correspondencia disponibles en la región.
GetRegionsByName(string)Devuelve una colección de regiones de combinación de correspondencia con el nombre especificado.
GetRegionsHierarchy()Devuelve una jerarquía completa de regiones (con campos) disponibles en el documento.

Observaciones

Para que la operación de combinación de correspondencia funcione, el documento debe contener Word MERGEFIELD y opcionalmente los campos NEXT. Durante la operación de combinación de correspondencia, los campos de combinación en el documento se reemplazan con valores de su fuente de datos.

Hay dos formas distintas de utilizar la combinación de correspondencia: con regiones de combinación de correspondencia y sin ellas.

La combinación de correspondencia más sencilla es sin regiones y es muy similar a cómo funciona mail merge en Word. UsarEjecutar métodos para fusionar información de alguna fuente de datos comoTabla de datos ,Conjunto de datos ,Vista de datos ,Lector de datos o una serie de objetos en su documento. El MailMerge El objeto procesa todos los registros de la fuente de datos y copia y agrega el contenido de todo el documento para cada registro.

Tenga en cuenta que cuandoMailMerge El objeto encuentra un campo SIGUIENTE, selecciona el siguiente registro en la fuente de datos y continúa fusionando sin copiar ningún contenido.

UsarExecuteWithRegions y otras sobrecargas para fusionar información en un documento con regiones de combinación de correspondencia definidas. Puedes usar Conjunto de datos ,Tabla de datos ,Vista de datos oLector de datos como fuentes de datos para esta operación.

Debe utilizar regiones de combinación de correspondencia si desea hacer crecer dinámicamente partes dentro del documento . Sin regiones de combinación de correspondencia, se repetirá todo el documento para cada registro de la fuente de datos.

Ejemplos

Muestra cómo ejecutar una combinación de correspondencia con datos de 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" });

    // A continuación se muestran dos formas de utilizar una tabla de datos como fuente de datos para una combinación de correspondencia.
    // 1 - Utilice toda la tabla para la combinación de correspondencia para crear un documento de combinación de correspondencia de salida para cada fila de la tabla:
    Document doc = CreateSourceDocExecuteDataTable();

    doc.MailMerge.Execute(table);

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

    // 2 - Utilice una fila de la tabla para crear un documento de combinación de correspondencia de salida:
    doc = CreateSourceDocExecuteDataTable();

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

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

/// <summary>
/// Crea un documento fuente de combinación de correspondencia.
/// </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;
}

Ver también