Vyčistěte před nebo během operace Mail Merge
Aspose.Words umožňuje použít různé možnosti čištění a odebrání, jako je odstranění polí sloučení před provedením operace Mail Merge nebo odstranění nepoužívaných oblastí během operace Mail Merge. Tato část vysvětlí, jak odstranit sloučená pole a jak nastavit možnost odebrání.
Smazat Sloučená Pole
Pokud používáte nějakou dlouhou šablonu vytvořenou někým jiným, možná budete chtít před provedením operace Mail Merge Odstranit všechna slučovací pole, která již v této šabloně existují. Metodu DeleteFields můžete použít, pokud chcete odstranit všechna slučovací pole z dokumentu bez provedení operace Mail Merge. Tato metoda není ovlivněna žádnými možnostmi odebrání vlastnosti CleanupOptions a jejím provedením se odstraní pouze sloučená pole, nikoli žádná obsahující pole nebo prázdné odstavce.
Následující příklad kódu ukazuje, jak odstranit všechna slučovací pole ze šablony bez provedení operace Mail Merge:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(); | |
doc.MailMerge.DeleteFields(); |
Nastavení možnosti Removing
Aspose.Words umožňuje odstranit nespojená pole, oblasti a odstavce ze šablony během operace Mail Merge pomocí možností odebrání.
Pomocí vlastnosti CleanupOptions spolu s výčtem MailMergeCleanupOptions nastavte možnost odebrání. Určete, které položky chcete odstranit výběrem následujících možností (můžete kombinovat více než jednu):
- Odstranit prázdné odstavce
- Odstraňte nepoužívané oblasti
- Odstraňte nepoužívaná pole
- Odebrat obsahující pole
- Odebrat statická pole
- Odstranit prázdné řádky tabulky
Pole sloučení můžete považovat za nespojené v jedné z následujících podmínek:
- Pokud pole sloučení ve zdroji dat nemá sloupec nebo pole mapování.
- Pokud pole sloučení ve zdroji dat obsahuje pole mapování, ale data jsou null.
Odstranit Prázdné Odstavce
Odstavec, který obsahuje pouze slučovací pole, bude prázdný, když proces Mail Merge odstraní všechna slučovací pole jako nespojená. Tyto prázdné odstavce mohou přidat nechtěné místo a změnit, jak bude generovaná zpráva vypadat. Během operace Mail Merge můžete čelit dvěma situacím s odstavci:
- Pole Mail Merge bude sloučeno s prázdnými daty.
- Pole sloučit se nepoužívá a bude odstraněno.
V obou situacích RemoveEmptyParagraphs volba automaticky odstraní prázdné odstavce z dokumentu. Také odstraní pole sloučení TableStart
a TableEnd, pokud je zbytek odstavce prázdný.
Následující příklad kódu ukazuje, jak odstranit prázdné odstavce:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(MyDir + "Table with fields.docx"); | |
doc.MailMerge.CleanupOptions = MailMergeCleanupOptions.RemoveEmptyParagraphs; | |
doc.MailMerge.Execute(new string[] { "FullName", "Company", "Address", "Address2", "City" }, | |
new object[] { "James Bond", "MI5 Headquarters", "Milbank", "", "London" }); | |
doc.Save(ArtifactsDir + "WorkingWithCleanupOptions.RemoveEmptyParagraphs.docx"); |
Odstraňte Nepoužívané Oblasti
V předchozích verzích Aspose.Words byly prázdné oblasti Mail Merge z dokumentu automaticky odstraněny během operace Mail Merge. S nejnovější verzí Aspose.slova, prázdné oblasti Mail Merge zůstávají po operaci Mail Merge ve výchozím nastavení. Můžete však použít možnost RemoveUnusedRegions k odstranění nepoužívaných oblastí Mail Merge během operace Mail Merge. Můžete například Sloučit dokument s prázdným zdrojem dat, který neobsahuje žádné datové tabulky, které vedou k nepoužívaným oblastem v dokumentu.
Následující příklad kódu ukazuje, jak odstranit nepoužívané oblasti sloučení:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(MyDir + "Mail merge destination - Northwind suppliers.docx"); | |
DataSet data = new DataSet(); | |
doc.MailMerge.CleanupOptions = MailMergeCleanupOptions.RemoveUnusedRegions; | |
// doc.MailMerge.CleanupOptions = MailMergeCleanupOptions.RemoveContainingFields; | |
// doc.MailMerge.CleanupOptions |= MailMergeCleanupOptions.RemoveStaticFields; | |
// doc.MailMerge.CleanupOptions |= MailMergeCleanupOptions.RemoveEmptyParagraphs; | |
// doc.MailMerge.CleanupOptions |= MailMergeCleanupOptions.RemoveUnusedFields; | |
// 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.MailMerge.ExecuteWithRegions(data); | |
doc.Save(ArtifactsDir + "WorkingWithCleanupOptions.RemoveUnmergedRegions.docx"); |
Poznámka
Odstraňte Nepoužívaná Pole
Aspose.Words umožňuje odstranit všechna nepoužitá pole Mail Merge přiřazením příznaku RemoveUnusedFields CleanupOptions. Tato možnost odstraní slučovací pole, která nemají odpovídající data ve zdroji dat.
Následující příklad kódu ukazuje, jak automaticky odstranit všechna nepoužitá slučovací pole z dokumentu během operace Mail Merge:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(MyDir + "Table with fields.docx"); | |
doc.MailMerge.CleanupOptions = MailMergeCleanupOptions.RemoveUnusedFields; | |
doc.MailMerge.Execute(new string[] { "FullName", "Company", "Address", "Address2", "City" }, | |
new object[] { "James Bond", "MI5 Headquarters", "Milbank", "", "London" }); | |
doc.Save(ArtifactsDir + "WorkingWithCleanupOptions.RemoveUnusedFields.docx"); |
Odstranění Polí Obsahujících
Slučovací pole může být obsaženo v jiném poli, jako je pole IF nebo pole Vzorce. Toto vnější pole odeberte, když je sloučené pole sloučeno nebo odebráno z dokumentu.
Následující příklad kódu ukazuje, jak odebrat pole obsahující slučovací pole z dokumentu:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(MyDir + "Table with fields.docx"); | |
doc.MailMerge.CleanupOptions = MailMergeCleanupOptions.RemoveContainingFields; | |
doc.MailMerge.Execute(new string[] { "FullName", "Company", "Address", "Address2", "City" }, | |
new object[] { "James Bond", "MI5 Headquarters", "Milbank", "", "London" }); | |
doc.Save(ArtifactsDir + "WorkingWithCleanupOptions.RemoveContainingFields.docx"); |
Poznámka
Odstranit Prázdné Řádky Tabulky
Aspose.Words umožňuje odstranit prázdné řádky tabulky přiřazením příznaku RemoveEmptyTableRows CleanupOptions. Tato možnost odstraní řádky tabulky, které obsahují prázdná pole sloučení.
Následující příklad kódu ukazuje, jak z dokumentu odebrat prázdné řádky tabulky obsahující oblasti Mail Merge:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(MyDir + "Table with fields.docx"); | |
doc.MailMerge.CleanupOptions = MailMergeCleanupOptions.RemoveEmptyTableRows; | |
doc.MailMerge.Execute(new string[] { "FullName", "Company", "Address", "Address2", "City" }, | |
new object[] { "James Bond", "MI5 Headquarters", "Milbank", "", "London" }); | |
doc.Save(ArtifactsDir + "WorkingWithCleanupOptions.RemoveEmptyTableRows.docx"); |