Pulizia prima o durante un'operazione Mail Merge
Aspose.Words consente di applicare diverse opzioni di pulizia e rimozione, ad esempio l’eliminazione dei campi di unione prima di eseguire un’operazione Mail Merge o la rimozione delle regioni inutilizzate durante un’operazione Mail Merge. Questa sezione spiegherà come eliminare i campi uniti e come impostare un’opzione di rimozione.
Elimina campi uniti
Quando si utilizza un modello lungo creato da qualcun altro, è possibile eliminare tutti i campi di unione già esistenti in tale modello prima di eseguire un’operazione Mail Merge. È possibile utilizzare il metodo DeleteFields se si desidera eliminare tutti i campi di unione da un documento senza eseguire un’operazione Mail Merge. Questo metodo non è influenzato dalle opzioni di rimozione della proprietà CleanupOptions e l’esecuzione rimuove solo i campi uniti, non i campi contenenti o i paragrafi vuoti.
L’esempio di codice seguente mostra come eliminare tutti i campi di unione dal modello senza eseguire un’operazione Mail Merge:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
// Shows how to delete all merge fields from a document without executing mail merge. | |
doc.getMailMerge().deleteFields(); |
Imposta un’opzione Removing
Aspose.Words consente di rimuovere campi, aree e paragrafi non integrati da un modello durante un’operazione Mail Merge utilizzando le opzioni di rimozione.
Utilizzare la proprietà CleanupOptions insieme all’enumerazione MailMergeCleanupOptions per impostare l’opzione di rimozione. Specificare gli elementi che si desidera rimuovere scegliendo le seguenti opzioni (è possibile combinare più di uno):
- Rimuovere i paragrafi vuoti
- Rimuovi le regioni inutilizzate
- Rimuovi i campi non utilizzati
- Rimuovi i campi contenenti
- Rimuovere i campi statici
- Rimuovi righe di tabella vuote
È possibile considerare un campo Unione come unmerged in una delle seguenti condizioni:
- Se il campo Unione nell’origine dati non dispone di una colonna o di un campo di mappatura.
- Se il campo Unione nell’origine dati contiene un campo di mappatura ma i dati sono nulli.
Rimuovere i paragrafi vuoti
Un paragrafo che include solo campi di unione sarà vuoto quando il processo Mail Merge rimuove tutti i suoi campi di unione come non uniti. Questi paragrafi vuoti possono aggiungere spazio indesiderato e modificare l’aspetto del report generato. È possibile affrontare due situazioni con paragrafi durante un’operazione Mail Merge:
- Il campo Mail Merge verrà unito a dati vuoti.
- Il campo Unione non è utilizzato e verrà rimosso.
In entrambe le situazioni l’opzione RemoveEmptyParagraphs rimuoverà automaticamente i paragrafi vuoti dal documento. Inoltre, rimuoverà i campi Unione TableStart
e TableEnd se il resto del paragrafo è vuoto.
Il seguente esempio di codice mostra come rimuovere i paragrafi vuoti:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(dataDir + "RemoveRowfromTable.docx"); | |
doc.getMailMerge().setCleanupOptions(MailMergeCleanupOptions.REMOVE_EMPTY_PARAGRAPHS); | |
doc.getMailMerge().execute(new String[] { "FullName", "Company", "Address", "Address2", "City" }, | |
new Object[] { "James Bond", "MI5 Headquarters", "Milbank", "", "London" }); | |
doc.save(dataDir + "MailMerge.ExecuteArray_out.doc"); |
Rimuovi le regioni inutilizzate
Nelle versioni precedenti di Aspose.Words, le regioni vuote di Mail Merge sono state rimosse automaticamente dal documento durante l’operazione Mail Merge. Con l’ultima versione di Aspose.le parole, le regioni vuote Mail Merge rimangono dopo l’operazione Mail Merge per impostazione predefinita. Tuttavia, è possibile utilizzare l’opzione RemoveUnusedRegions per rimuovere le regioni Mail Merge non utilizzate durante l’operazione Mail Merge. Ad esempio, è possibile unire un documento con un’origine dati vuota che non contiene tabelle di dati che portano a aree non utilizzate nel documento.
L’esempio di codice seguente mostra come rimuovere le regioni di unione non utilizzate:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(dataDir + "TestFile Empty.doc"); | |
// Create an empty data source in the form of a DataSet containing no DataTable objects. | |
DataSet data = new DataSet(); | |
// Enable the MailMergeCleanupOptions.RemoveUnusedRegions option. | |
doc.getMailMerge().setCleanupOptions(MailMergeCleanupOptions.REMOVE_UNUSED_REGIONS); | |
// Merge the data with the document by executing mail merge which will have no effect as there is no data. | |
// However the regions found in the document will be removed automatically as they are unused. | |
doc.getMailMerge().executeWithRegions(data); | |
// Save the output document to disk. | |
doc.save(dataDir + "TestFile.RemoveEmptyRegions Out.doc"); |
Nota
Rimuovi i campi non utilizzati
Aspose.Words consente di rimuovere tutti i campi Mail Merge inutilizzati assegnando il flag RemoveUnusedFields a CleanupOptions. Questa opzione rimuoverà i campi di unione che non contengono i dati corrispondenti nell’origine dati.
L’esempio di codice seguente mostra come rimuovere automaticamente i campi di unione non utilizzati da un documento durante un’operazione Mail Merge:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(dataDir + "RemoveRowfromTable.docx"); | |
doc.getMailMerge().setCleanupOptions(MailMergeCleanupOptions.REMOVE_UNUSED_FIELDS); | |
doc.getMailMerge().execute(new String[] { "FullName", "Company", "Address", "Address2", "City" }, | |
new Object[] { "James Bond", "MI5 Headquarters", "Milbank", "", "London" }); | |
doc.save(dataDir + "MailMerge.ExecuteArray_out.doc"); |
Rimozione dei campi contenenti
Un campo unione può essere contenuto in un altro campo, ad esempio un campo IF o un campo formula. Rimuovere questo campo esterno quando il campo Unione viene unito o rimosso dal documento.
Nell’esempio di codice seguente viene illustrato come rimuovere i campi che contengono campi di unione da un documento:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(dataDir + "RemoveRowfromTable.docx"); | |
doc.getMailMerge().setCleanupOptions(MailMergeCleanupOptions.REMOVE_CONTAINING_FIELDS); | |
doc.getMailMerge().execute(new String[] { "FullName", "Company", "Address", "Address2", "City" }, | |
new Object[] { "James Bond", "MI5 Headquarters", "Milbank", "", "London" }); | |
doc.save(dataDir + "MailMerge.ExecuteArray_out.doc"); |
Nota
Rimuovi righe di tabella vuote
Aspose.Words consente di rimuovere righe di tabella vuote assegnando il flag RemoveEmptyTableRows a CleanupOptions. Questa opzione rimuoverà le righe di tabella che contengono campi di unione vuoti.
L’esempio di codice seguente mostra come rimuovere le righe di tabella vuote che contengono regioni Mail Merge da un documento:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(dataDir + "RemoveRowfromTable.docx"); | |
doc.getMailMerge().setCleanupOptions(MailMergeCleanupOptions.REMOVE_EMPTY_TABLE_ROWS); | |
doc.getMailMerge().execute(new String[] { "FullName", "Company", "Address", "Address2", "City" }, | |
new Object[] { "James Bond", "MI5 Headquarters", "Milbank", "", "London" }); | |
doc.save(dataDir + "MailMerge.ExecuteArray_out.doc"); |