Automatizar a criação de documentos personalizados – tais como relatórios, cartas e facturas – pode melhorar significativamente a eficiência no seu fluxo de trabalho.Com C# Mail Merge alimentado por Aspose.Words para .NET, você pode alcançar isso sem problemas.Este guia irá ajudá-lo a usar o Plugin de Askos.Segundos de Correios para executar uma geração de documento eficiente e escalável dentro de suas aplicações .NET – sem a necessidade de MS Word ou Office Interop.

Conteúdo

O que é Mail Merge?

Mail Merge é uma metodologia poderosa para a geração dinâmica de documentos através da popularização de modelos com dados de várias fontes. com Aspose.Words, você pode automatizar tarefas como:

  • Criação de cartas e faturas personalizadas.
  • Criar relatórios em massa usando formatos estruturados como XML, JSON ou bases de dados, permitindo a geração de relatórios dinâmicos com C# e Aspose.Words.

Fonte de dados para Mail Merge

Aspose.Words suporta uma variedade de fontes de dados, incluindo:

  • Objetos: Templates populares usando instâncias de classe.
  • XML: Carregar dados estruturados para campos dinâmicos.
  • JSON: fácil de integrar com APIs modernos.
  • CSV: Livrar dados de tabela para a geração de documentos em massa.
  • DataTable/DataSet: Utilize ADO.NET para integração de banco de dados.

Preparação de Template para Mail Merge

O modelo de fusão de correio é o documento que contém campos de fusão que serão populados com dados da sua fonte de dados especificada durante a execução. O modelo pode ser em formato DOC ou DOCX e não requer um estilo específico. Siga estas etapas para criar um modelo de fusão de correio:

  • Abra o seu documento ou crie um novo no MS Word.
  • Coloque o cursor onde você deseja inserir um campo de fusão.
  • No menu Insert, selecione a opção Field.
  • Na lista Nomes de campo, selecione MergeField.
  • Digite um nome para o campo de fusão na caixa Nome do campo e clique em OK.
  • Salve o documento.

A seguinte imagem ilustra a Modelo de amostra O documento.

Mail Merge Template

.NET Mail Merge API - Instalação

Você pode instalar Aspose.Words para .NET através de vários métodos:

Performar Mail Merge em Word Document usando C#

Uma vez que o seu modelo está pronto, você pode executar a fusão de e-mail para gerar documentos. Aqui estão as etapas para executar a fusão de e-mail no seu modelo preparado:

Aqui está uma amostra de código que demonstra como reporte automático geração em C# usando uma série de valores:

Documento Word após o Mail Merge

Execute Mail Merge in C#

Performar Mail Merge usando XML Data Source em C#

Os arquivos XML são usados comumente para armazenar e transferir dados. Aspose.Words para .NET suporta XML como uma fonte de dados para operações de fusão de correio. DataSet Objeto e executar a fusão de correio. abaixo está um arquivo de amostra XML para o nosso caso de uso.

<customers>
    <customer Name="John Ben Jan" ID="1" Domain="History" City="Boston"/>
    <customer Name="Lisa Lane" ID="2" Domain="Chemistry" City="LA"/>
    <customer Name="Dagomir Zits" ID="3" Domain="Heraldry" City="Milwaukee"/>
    <customer Name="Sara Careira Santy" ID="4" Domain="IT" City="Miami"/>
</customers>

A amostra de código a seguir recebe dados de uma fonte de dados XML e executa a fusão de correio usando C#.

Abaixo está o e-mail fusão Templo que será populado com dados do arquivo XML.

Mail Merge Template for XML

Esta imagem representa a primeira página do documento Word resultante obtido após executar a fusão de correio.

Execute Mail Merge with XML in C#

Formatação personalizada de campos de fusão {#formatação personalizada de campos de fusão}

Aspose.Words para .NET fornece controle melhorado sobre o processo de fusão de correio. Arquivo da tag.fieldmergingcallback A propriedade permite que você configure o comportamento de fusão de e-mail como cada campo fusion é encontrado. Conheça o site e o site.com e IFieldMergingCallback.ImageFieldMerging Os métodos permitem a personalização da operação de fusão de correio.

Abaixo está uma amostra de código que demonstra como aplicar formatação personalizada durante a fusão de correio através do modelo de exemplo fornecido:

O seguinte implementa a classe HandleMergeFieldAlternatingRows.

Mail Merge com Regiões usando C#

Em alguns casos, você pode precisar localizar e repetir uma região específica dentro do documento do Word. Para tais cenários, use a fusão de correio com regiões. para criar uma região, especifique tanto o começo como o fim da região; as fusões de e-mail, em seguida, repetirá esta região para cada registro na fonte de dados. O exemplo do modelo abaixo contém duas regións — Ordens e Detalhes de ordem — usando os campos de fusion «TableStart:Orders», « TabelaEnd:OrderDetails», e « tabelaExtra:Segundos».

Mail Merge Template with Regions

Aqui está uma amostra de código que executa a fusão de e-mail com base em regiões para o anteriormente mencionado Templo.

Os seguintes métodos ilustram como ler dados de uma base de dados.

Postado por Nested Mail Merge

Muitas vezes, os dados da fonte são estruturados em formatos relativos. Por exemplo, “Order” pode ter uma relação de um para vários com “OrdersDetails”, que mantém registros de itens dentro de uma ordem. Modelo de Fatura Isso se adapta muito bem a este cenário.

Mail Merge Template with Regions

A seguir é uma fonte de dados XML para o nosso exemplo de fusão de correio.

<?xml version="1.0" encoding ="utf-8"?>
<Orders xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="OrdersSchema.xsd">
    <Order>
        <Number>23</Number>
        <Address>Nelson Street</Address>
        <Suburb>Howick</Suburb>
        <City>Auckland</City>
        <Phonenumber>543 1234</Phonenumber>
        <Date>03/01/2010</Date>
        <Total>14.00</Total>
        <Item>
            <Name>BBQ Chicken Pizza</Name>
            <Price>6.00</Price>
            <Quantity>1</Quantity>
            <ItemTotal>6.00</ItemTotal>
        </Item>
        <Item>
            <Name>1.5 Litre Coke</Name>
            <Price>4.00</Price>
            <Quantity>2</Quantity>
            <ItemTotal>8.00</ItemTotal>
        </Item>
    </Order>
    <Order>
        <Number>10</Number>
        <Address>Parkville Avenue</Address>
        <Suburb>Pakuranga</Suburb>
        <City>Auckland</City>
        <Phonenumber>548 7342</Phonenumber>
        <Date>05/03/2010</Date>
        <Total>6.00</Total>
        <Item>
            <Name>Hawaiian Pizza</Name>
            <Price>4.00</Price>
            <Quantity>1</Quantity>
            <ItemTotal>4.00</ItemTotal>
        </Item>
        <Item>
            <Name>Fries</Name>
            <Price>1.00</Price>
            <Quantity>2</Quantity>
            <ItemTotal>2.00</ItemTotal>
        </Item>
    </Order>
</Orders>

O arquivo OrderSchema.xsd correspondente para este XML é:

<?xml version="1.0" encoding ="utf-8"?>
<xs:schema id="OrdersSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Orders">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Order">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Number"/>
                            <xs:element name="Address"/>
                            <xs:element name="Suburb"/>
                            <xs:element name="City"/>
                            <xs:element name="Phonenumber"/>
                            <xs:element name="Date"/>
                            <xs:element name="Total"/>
                            <xs:element name="Item">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Name"/>
                                        <xs:element name="Price"/>
                                        <xs:element name="Quantity"/>
                                        <xs:element name="ItemTotal"/>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

A amostra de código a seguir executa a fusão de correio nesto usando C#.

Documento Word após o Mail Merge

Abaixo está a primeira página do documento Word resultante obtido após a execução da fusão de correio.

Word Document after Mail Merge

Conclusão

Aspose.Words para .NET é uma API de fusão de e-mail abrangente que fornece funções padrão e extensas adequadas para aplicações .NET. Com apenas algumas linhas de código, você pode desenvolver relatórios simples ou complexos de várias fontes de dados sem problemas. DocumentaçãoPara começar com Aspose.Words para .NET, explore o disponível Guia do desenvolvedor e o código de amostra em GitHub. O Aspose Plugin também oferece funcionalidades avançadas para a geração de relatórios.

Tente Aspose.Words para .NET para Grátis

Você pode obter uma licença temporária gratuita para tentar Aspose.Words para .NET sem restrições. Obtenha sua licença temporária agora.

More in this category