Körlevél
Körlevél
Ez az útmutató bemutatja, hogyan lehet dolgozni a mail-merge mezőkódokkal és a mail-merge konfigurációs adatokkal a Aspose.Words FOSS-ban .NET számára, valamint hol húzódik a határ a merge végrehajtásával. Aspose.Words FOSS a .NET számára felismeri és frissíti a Word mail-merge mezőkódjait — ADDRESSBLOCK, DATABASE, GREETINGLINE, MERGEFIELD, NEXTIF, és SKIPIF — részeként a mezőértékelő motorjának, és képes beolvasni a mail-merge konfigurációs adatokat (MailMergeSettings) egy dokumentumban tárolt. MailMerge.Execute() a kereskedelmi termékből ismert munkafolyamat — az not implementálva ebben a kiadásban; nincs MailMerge végrehajtási osztály létezik a jelenlegi API felületen.
MERGEFIELD — Az egyesítési helyőrzők olvasása és módosítása
FieldMergeField megvalósítja a MERGEFIELD mezőt. FieldName és FieldNameNoPrefix visszaadják a mezőhöz kötött alapul szolgáló adatforrás oszlop nevét, a TextBefore/TextAfter a egyesített érték köré csomagolt szöveges literált tartalmazza, a IsMapped/IsVerticalFormatting pedig jelentik az egyesítési mező leképezését és elrendezési zászlókat. Mint minden mezőtípus, támogatja a GetFieldCode(), Update(), Unlink() és Remove().
ADDRESSBLOCK és GREETINGLINE
FieldAddressBlock megvalósítja a ADDRESSBLOCK mezőt, ahol a FormatAddressOnCountryOrRegion, IncludeCountryOrRegionName, ExcludedCountryOrRegionName, NameAndAddressFormat és LanguageId szabályozzák a címzett címének formázását. A FieldGreetingLine megvalósítja a GREETINGLINE mezőt, a AlternateText, NameFormat és LanguageId pedig a megszólítás szövegét szabályozzák.
DATABASE mező
FieldDatabase megvalósítja a DATABASE mezőt, és a mezőben tárolt kapcsolat részleteket teszi elérhetővé: Connection, FileName, Query, TableFormat, InsertHeadings, InsertOnceOnMailMerge, FirstRecord és LastRecord. A lekérdezés eredményeinek biztosításához, amikor ez a mező frissül, valósítsa meg a IFieldDatabaseProvider és annak GetQueryResult(fileName, connection, query, field) metódusát, majd rendelje hozzá a Document.FieldOptions.FieldDatabaseProvider értékhez, mielőtt meghívná a Update()-t. A Connection tulajdonságot be kell állítani – enélkül a Update() nem rendelkezik adatforrással a lekérdezéshez.
Feltételes összefűzési mezők — NEXTIF és SKIPIF
FieldNextIf és FieldSkipIf megvalósítják a NEXTIF és SKIPIF mezőket, mindegyik a LeftExpression, ComparisonOperator és RightExpression értékeket teszi elérhetővé a feltételes teszthez. Document.FieldOptions.ComparisonExpressionEvaluator (egy IComparisonExpressionEvaluator) felülírhatja, hogyan értékelődnek ki ezek a feltételes kifejezések.
Képösszefűzési mező méretezése
MergeFieldImageDimension egy szélességet vagy magasságot jelöl egy képösszefűzési mezőn keresztül beszúrt képhez, amelyet new MergeFieldImageDimension(value) (pontban) vagy new MergeFieldImageDimension(value, unit) formájában hoznak létre, egy explicit MergeFieldImageDimensionUnit (Point vagy Percent) használatával. A Value és Unit tulajdonságai egyaránt írhatóak.
Mi tartozik a hatókörbe, és mi nem
Document.MailMergeSettings visszatér egy MailMergeSettings objektum, amely a levelezés-összevonás konfigurációját modellezi, az OOXML egy dokumentumban marad meg — DataSource, ConnectString, Query, MainDocumentType, DataType, Destination, CheckErrors, és az Office Data Source Object (ODSO) beállításokat a OdsoFieldMapData/OdsoRecipientData gyűjteményekben. Ez a konfiguráció data amelyet a dokumentum hordoz, nem élő kapcsolat: olvasás és írás MailMergeSettings nem csatlakozik adatbázishoz, táblázathoz vagy címjegyzékhez, és ez a kiadás nem tartalmaz MailMerge végrehajtási osztályt az összevonás futtatásához és a kitöltött kimeneti dokumentumok előállításához. Ami ebben a kiadásban támogatott, az a mezőszintű réteg felül: az összevonási mezőkódok felismerése, olvasása, frissítése és módosítása egyetlen dokumentumban a mezőértékelő motoron keresztül.
Tippek és bevált gyakorlatok
- Kezeld a
MailMergeSettings-t olyan dokumentum metaadatként, amelyet olvashatsz és visszaküldhetsz, nem pedig API-ként a külső adatokhoz való csatlakozáshoz — ebben a kiadásban nincs mögötte végrehajtási motor. - Mindig állítsd be a
FieldDatabase.Connection-t, mielőtt meghívod aUpdate()-t egyDATABASEmezőn, különben a frissítésnek nincs mit lekérdeznie. - Hozz létre egyetlen
IFieldDatabaseProvider-t, és rendeld hozzá aDocument.FieldOptions.FieldDatabaseProvidersegítségével, hogy központosítsd, hogyan oldják fel a dokumentumban lévő összesDATABASEmező az adataikat. - Használd a
FieldMergeField.FieldName-t annak megállapítására, hogy mely adatforrás-oszlophoz van kötve egyMERGEFIELD, mielőtt programozottan döntenél a feldolgozás módjáról.
Gyakori problémák
| Probléma | Ok | Javítás |
|---|---|---|
FieldDatabase.Update() nem ad vissza adatot | Connection nincs beállítva, vagy nincs IFieldDatabaseProvider regisztrálva | Állítsa be a Connection, és rendelje hozzá a Document.FieldOptions.FieldDatabaseProvider a frissítés előtt |
Várt egy MailMerge.Execute() stílusú API | Az összeolvasztás végrehajtása külső adatforrás ellen nincs megvalósítva ebben a FOSS kiadásban | Dolgozzon közvetlenül az összeolvasztási mezőosztályokkal (FieldMergeField, FieldDatabase, stb.) egyetlen dokumentumban, vagy használja a kereskedelmi Aspose.Words terméket .NET esetén a teljes összeolvasztási végrehajtáshoz |
NEXTIF/SKIPIF feltételek váratlanul értékelődnek ki | Az alapértelmezett összehasonlításkifejezés kiértékelése nem felel meg a várt szemantikának | Implementáld IComparisonExpressionEvaluator és rendeld hozzá Document.FieldOptions.ComparisonExpressionEvaluator |
FAQ
Futtathatok mail merge-et CSV vagy adatbázis ellen ebben a kiadásban?
Nem. Ez a kiadás megvalósítja a mail-merge mezőkódokat és a MailMergeSettings konfigurációs adatmodellt, de nincs MailMerge végrehajtási osztály a külső adatforráshoz való csatlakozáshoz és a kitöltött dokumentumok generálásához.
Mit is tehetek valójában a MERGEFIELD mezőkkel?
Olvashatod és módosíthatod őket közvetlenül — FieldMergeField.FieldName a kötött oszlopnévhez, TextBefore/TextAfter a környező szöveges tartalomhoz, és Update()/Unlink()/Remove() a többi mezőhöz hasonlóan — az aktuális dokumentumban.
Használhatatlan a MailMergeSettings a merge végrehajtása nélkül?
Nem — továbbra is hasznos a dokumentum tárolt levél-összefűzési konfigurációjának olvasásához vagy átviteléhez, például DataSource, Query vagy MainDocumentType esetén, még akkor is, ha ez a kiadás nem használja fel azt a konfigurációt a merge futtatásához.
Hogyan adhatok meg adatot egy DATABASE mezőhöz?
Implementáld a IFieldDatabaseProvider.GetQueryResult(fileName, connection, query, field) elemet, és rendeld hozzá a megvalósításodat a Document.FieldOptions.FieldDatabaseProvider értékhez, mielőtt meghívnád a Update()-t.
Hogyan szabályozhatom egy kép merge mező által beszúrt kép méretét?
Használd a MergeFieldImageDimension-t, amelyet pontértékkel vagy egy értékkel és egy explicit MergeFieldImageDimensionUnit-vel (Point vagy Percent) lehet felépíteni.
API Reference Összefoglaló
| Osztály / Metódus | Leírás |
|---|---|
FieldMergeField | MERGEFIELD mező: FieldName, FieldNameNoPrefix, TextBefore, TextAfter, IsMapped |
FieldAddressBlock | ADDRESSBLOCK mező: címformázási tulajdonságok |
FieldGreetingLine | GREETINGLINE mező: üdvözlés formázási tulajdonságok |
FieldDatabase | DATABASE mező: Connection, Query, FileName, TableFormat |
IFieldDatabaseProvider | Lekérdezési eredményeket ad a DATABASE mezőkhöz a(z) GetQueryResult() segítségével |
FieldNextIf / FieldSkipIf | NEXTIF / SKIPIF feltételes egyesítési mezők |
MergeFieldImageDimension | Szélesség/magasság a kép merge mező képeihez |
Document.MailMergeSettings | Megőrzött mail-merge konfigurációs adatok (nem élő adatkapcsolat) |