Automatizzare la creazione di documenti personalizzati—come report, lettere e fatture—può migliorare significativamente l’efficienza del tuo flusso di lavoro. Con C# Mail Merge alimentato da Aspose.Words for .NET, puoi raggiungere questo obiettivo senza problemi. Questa guida ti accompagnerà nell’utilizzo del Plugin Mail Merge di Aspose.Words per eseguire una generazione di documenti efficiente e scalabile all’interno delle tue applicazioni .NET—senza la necessità di MS Word o Office Interop. Alla fine di questa guida, sarai in grado di integrare C# mail merge per l’automazione dei report e semplificare il tuo flusso di lavoro di reporting.
Contenuti
- Che cos’è il Mail Merge?
- Fonti di dati per il Mail Merge
- Preparazione dei modelli per il Mail Merge
- Iniziare con Aspose.Words per .NET
- Eseguire il Mail Merge con dati di esempio
- Mail Merge con dati XML
- Formattazione personalizzata dei campi di unione
- Mail Merge con regioni
- Mail Merge annidato
- Conclusione
Che cos’è il Mail Merge?
Il Mail Merge è una metodologia potente per generare documenti dinamicamente popolando modelli con dati provenienti da varie fonti. Con Aspose.Words, puoi automatizzare attività come:
- Generare lettere e fatture personalizzate.
- Creare report in blocco utilizzando formati strutturati come XML, JSON o database, abilitando la generazione dinamica di report con C# e Aspose.Words.
Fonti di dati per il Mail Merge
Aspose.Words supporta una varietà di fonti di dati, tra cui:
- Oggetti: Popola i modelli utilizzando istanze di classe.
- XML: Carica dati strutturati per campi dinamici.
- JSON: Integra facilmente con API moderne.
- CSV: Sfrutta i dati tabulari per la generazione di documenti in blocco.
- DataTable/DataSet: Utilizza ADO.NET per l’integrazione con i database.
Preparazione dei modelli per il Mail Merge
Il modello di mail merge è il documento contenente campi di unione che saranno popolati con dati dalla tua fonte di dati specificata durante l’esecuzione. Il modello può essere in formato DOC o DOCX e non richiede uno stile specifico. Segui questi passaggi per creare un modello di mail merge:
- Apri il tuo documento o creane uno nuovo in MS Word.
- Posiziona il cursore dove desideri inserire un campo di unione.
- Dal menu Inserisci, seleziona l’opzione Campo.
- Dalla lista Nomi dei campi, seleziona MergeField.
- Specifica un nome per il campo di unione nella casella Nome campo e fai clic su OK.
- Salva il documento.
Lo screenshot seguente illustra un modello di esempio documentale.

.NET Mail Merge API - Installazione
Puoi installare Aspose.Words for .NET attraverso vari metodi:
Eseguire il Mail Merge in un documento Word utilizzando C#
Una volta che il tuo modello è pronto, puoi eseguire il mail merge per generare documenti. Ecco i passaggi per eseguire il mail merge sul tuo modello preparato:
- Carica il documento modello utilizzando la classe Document.
- Imposta le opzioni di mail merge richieste, come Document.MailMerge.TrimWhitespaces.
- Esegui il mail merge utilizzando il metodo Document.MailMerge.Execute(), passando la fonte di dati come parametro.
- Salva il documento generato utilizzando il metodo Document.Save(String).
Ecco un esempio di codice che dimostra come automatizzare la generazione di report in C# utilizzando un array di valori:
Documento Word dopo il Mail Merge

Eseguire il Mail Merge utilizzando una fonte di dati XML in C#
I file XML sono comunemente utilizzati per memorizzare e trasferire dati. Aspose.Words per .NET supporta XML come fonte di dati per le operazioni di mail merge. Basta leggere l’XML in un oggetto DataSet e eseguire il mail merge. Di seguito è riportato un file XML di esempio per il nostro caso d’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>
Il seguente esempio di codice recupera i dati da una fonte di dati XML ed esegue il mail merge utilizzando C#.
Di seguito è riportato il modello di mail merge che sarà popolato con dati dal file XML.

Questa immagine rappresenta la prima pagina del documento Word risultante ottenuto dopo aver eseguito il mail merge.

Formattazione personalizzata dei campi di unione
Aspose.Words per .NET fornisce un controllo migliorato sul processo di mail merge. La proprietà MailMerge.FieldMergingCallback consente di configurare il comportamento del mail merge man mano che si incontra ciascun campo di unione. Implementando i metodi IFieldMergingCallback.FieldMerging e IFieldMergingCallback.ImageFieldMerging è possibile personalizzare l’operazione di mail merge.
Di seguito è riportato un esempio di codice che dimostra come applicare una formattazione personalizzata durante il mail merge attraverso il modello di esempio fornito:
Il seguente implementa la classe HandleMergeFieldAlternatingRows.
Mail Merge con regioni utilizzando C#
In alcuni casi, potrebbe essere necessario popolare e ripetere una regione specifica all’interno del documento Word. Per tali scenari, utilizza il mail merge con regioni. Per creare una regione, specifica sia l’inizio che la fine della regione; il mail merge ripeterà quindi questa regione per ciascun record nella fonte di dati. L’esempio di modello di seguito contiene due regioni—Ordini e DettagliOrdine—utilizzando i campi di unione «TableStart:Orders», «TableEnd:Orders», «TableStart:OrderDetails» e «TableEnd:OrderDetails».

Ecco un esempio di codice che esegue il mail merge basato su regioni per il modello menzionato in precedenza.
I seguenti metodi illustrano come leggere i dati da un database.
Mail Merge annidato
Spesso, i dati della fonte sono strutturati in formati relazionali. Ad esempio, “Ordini” può avere una relazione uno-a-molti con “DettagliOrdine”, che mantiene i record degli articoli all’interno di un ordine. In tali scenari, utilizza il mail merge annidato. Di seguito è riportato un modello di fattura che si adatta bene a questo scenario.

Di seguito è riportata una fonte di dati XML per il nostro esempio di mail merge annidato.
<?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>
Il corrispondente file OrderSchema.xsd per questo 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>
Il seguente esempio di codice esegue il mail merge annidato utilizzando C#.
Documento Word dopo il Mail Merge
Di seguito è riportata la prima pagina del documento Word risultante ottenuto dopo aver eseguito il mail merge annidato.

Conclusione
Aspose.Words per .NET è un’API di mail merge completa che fornisce sia funzionalità standard che estese adatte per le applicazioni .NET. Con poche righe di codice, puoi sviluppare report semplici o complessi da diverse fonti di dati senza problemi. Per indicazioni sulle migliori pratiche per la generazione automatizzata di report in .NET, consulta la documentazione. Per iniziare con Aspose.Words per .NET, esplora le guide per sviluppatori e il codice di esempio su GitHub. Il Plugin Aspose offre anche funzionalità avanzate per la generazione di report.
Prova Aspose.Words per .NET gratuitamente
Puoi ottenere una licenza temporanea gratuita per provare Aspose.Words per .NET senza limitazioni. Ottieni la tua licenza temporanea ora.