A Körlevél a Microsoft Word egyik funkciója, amellyel gyorsan és egyszerűen hozhat létre dokumentumokat, például leveleket, címkéket és borítékokat. Az Aspose.Words Cloud átveszi a szabványos körlevél-egyesítést, és sok lépést előrehalad, teljes értékű jelentéskészítő megoldássá alakítva, amely lehetővé teszi még összetettebb dokumentumok, például jelentések, katalógusok, leltárak és számlák létrehozását. Az Aspose.Words Cloud jelentéskészítési megoldás előnyei a következők:

  • Tervezzen jelentéseket a Microsoft Word programban szabványos körlevél-mezők használatával
  • Határozza meg a dokumentumban a növekvő régiókat, például részletezze a rendelés sorait
  • Képek beszúrása a körlevélkészítés során
  • Szúrjon be HTML-t a körlevél-egyesítés során

Alapvető lépések

A körlevélkészítés lépései meglehetősen egyszerűek. Először is a Microsoft Word segítségével hozzon létre és tervezzen Word-dokumentumot, amelyet általában sablonnak neveznek. Vegye figyelembe, hogy a dokumentumnak nem kell Microsoft Word sablonnak (.dot) lennie, lehet normál .doc dokumentum. Néhány speciális mezőt, úgynevezett egyesítő mezőket szúr be a sablonba azokon a helyeken, ahová később be szeretné illeszteni az adatforrásból származó adatokat. Ezután az Aspose.Words REST API-val egy körlevél-műveletet hajt végre. A körlevél-művelet adatokat vesz az adatforrásból, és egyesíti a dokumentumban.

Megismételhető egyesítési régiókat is kijelölhet a dokumentumban, vagy beszúrhat speciális egyesítési mezőket, amelyek lehetővé teszik más tartalom, például képek beszúrását. Attól függően, hogy hogyan állítja be a körlevél-mezőket és az ismételhető régiókat a dokumentumon belül, a dokumentum úgy nő, hogy több rekordot is elférjen az adatforrásban. Ha nem használ körlevél-régiókat, akkor a körlevél a Microsoft Word körlevélhez hasonló lesz, és a teljes dokumentumtartalom megismétlődik az adatforrásban lévő minden egyes rekordnál. Az ismételhető körlevél-régiók használatával kijelölhet olyan részeket a dokumentumon belül, amelyek megismétlődnek az adatforrás minden rekordjához. Ha például megjelöl egy táblázatsort megismételhető régióként, akkor ez a táblázatsor megismétlődik, aminek következtében a tábla dinamikusan növekszik, hogy az összes adathoz illeszkedjen.

Készítsen egy dokumentumot

A körlevél végrehajtása előtt el kell készítenie a dokumentumsablont. Olyan összevonási mezőket kell beillesztenie, amelyek helyére az adatforrásból származó értékek kerülnek.

Egyesítési mezők beszúrása egy dokumentumba

Egyesítési mezők beszúrása egy dokumentumba:

  1. Nyissa meg a dokumentumot a Microsoft Word alkalmazásban.
  2. A dokumentumban kattintson arra a helyre, ahol az egyesítési mezőt el szeretné helyezni.
  3. Nyissa meg a Beszúrás menüt, és válassza a Mező lehetőséget a Mező párbeszédpanel megnyitásához.
  4. A Mezőnevek listából válassza a MergeField lehetőséget.
  5. A Mezőnév szövegmezőben adjon meg egy nevet az egyesítési mezőnek, majd nyomja meg az OK gombot.

Mivel az egyesítési mező egy szokásos Microsoft Word mező, az Alt+F9 billentyűkombinációval válthat a mezőkódok és az eredmények megjelenítése között a dokumentumban a Microsoft Word programban. A mezőkódok a kapcsos zárójelek között jelennek meg.

Egyszerű körlevél

Annak érdekében, hogy a sablont felkészítse egy egyszerű körlevél-egyesítésre (régiók nélkül, hasonlóan a Microsoft Wordben elérhető klasszikus körlevél-egyesítéshez), csak egy vagy több egyesítési mezőt kell beillesztenie azokra a helyekre, amelyeket az adatforrásból származó adatokkal szeretne feltölteni. .

Vessünk egy pillantást a Dinner Invitation demóra. Levelet hoz létre az adatforrásban meghatározott ügyfelek listájához. A sablon számos egyesítési mezőt tartalmaz, amelyek két adatforrásból vannak kitöltve; más szóval két körlevél-összevonás történik egymás után. Először az első adatforrásból származó adatok egyesülnek a sablonba. Ez az adatforrás csak egy sort tartalmaz, mert ez a meghívó információja, így a teljes dokumentumtartalom nem ismétlődik, és csak a megfelelő mezők kerülnek kitöltésre adatokkal. Ezután a második körlevél-művelet végrehajtásra kerül. Az általa használt adatforrás információkat tartalmaz az ügyfelekről. A teljes sablon megismétlődik minden adatsornál, és minden ismétlődő másolat feltöltődik a megfelelő kliens adataival.

levelező egyesítés

Ennek eredményeként van egy dokumentumunk, amely öt kitöltött, hiánytalan és személyre szabott meghívólevélből áll (a legelső egy részlete az alábbiakban látható):

levélegyesítést hajt végre

Amint látja, lehetséges és néha hasznos is több egyesítési műveletet végrehajtani ugyanazzal a sablonnal az adatok szakaszos hozzáadásához. A KÖVETKEZŐ mezőket beszúrhatja a Word dokumentumba, így a körlevél-motor kiválasztja a következő rekordot az adatforrásból, és folytatja az egyesítést. Amikor a motor egy KÖVETKEZŐ mezővel találkozik, csak kiválasztja a következő rekordot az adatforrásban, és folytatja az egyesítést anélkül, hogy bármilyen tartalmat másolna. Ez használható dokumentumok, például levelezési címkék létrehozásakor.

Az alábbi kód az egyszerű körlevél-összevonás végrehajtásához:

// A teljes példákért és adatfájlokért látogasson el a https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet oldalra.

string MyAppKey = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
string MyAppSid = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/

WordsApi wordsApi = new WordsApi(MyAppKey, MyAppSid);
StorageApi storageApi = new StorageApi(MyAppKey, MyAppSid);

var fileName = "DinnerInvitation.docx";
var destFileName = "InviterAdded.docx";
var data = File.ReadAllText(@"c:\Data\" + "Inviter.xml");
string folder = null; // File exists at the root of the storage

// Töltse fel a forrásdokumentumot a Cloud Storage szolgáltatásba
PutCreateRequest request = new PutCreateRequest(fileName, File.OpenRead(@"c:\Data\" + fileName), null, null);
storageApi.PutCreate(request);

// A Körlevél művelet végrehajtása először
var executeMailMergeRequest = new PostDocumentExecuteMailMergeRequest(fileName, data, folder, destFileName: destFileName, withRegions: false);
var actual = wordsApi.PostDocumentExecuteMailMerge(executeMailMergeRequest);

// Hajtsa végre a körlevél-műveletet másodszor
fileName = destFileName;
destFileName = "FinalDinnerInvitation.docx";
data = File.ReadAllText(@"c:\Data\" + "Clients.xml");

executeMailMergeRequest = new PostDocumentExecuteMailMergeRequest(fileName, data, folder, destFileName: destFileName, withRegions: false);
actual = wordsApi.PostDocumentExecuteMailMerge(executeMailMergeRequest);

Levélegyesítés a régiókkal

Ha dinamikusan szeretné növelni a dokumentumon belüli részeket, használja a körözést a régiókkal. Ha egy körlevél-régiót szeretne megadni a dokumentumban, be kell szúrnia két körlevél-mezőt, amelyek megjelölik a körlevél-régió elejét és végét. A körlevél-régióban lévő összes dokumentumtartalom automatikusan megismétlődik az adatforrás minden rekordjához.

A körlevél-régió kezdetének megjelöléséhez illesszen be egy MERGEFIELD-t TableStart:MyTable néven, ahol a MyTable megfelel a címkének vagy kulcsnak XML-ben vagy JSON-ban. A körlevél-régió végének megjelöléséhez szúrjon be egy másik MERGEFIELD-t TableEnd:MyTable néven. E jelölőmezők közé helyezze el az adatforrás mezőinek megfelelő egyesítési mezőket. Ezek az egyesítési mezők az adatforrás első sorából lesznek feltöltve, majd a teljes régió megismétlődik, az új mezők pedig a második sor adataival és így tovább.

Kövesse az alábbi egyszerű szabályokat a régió megjelölésénél:

  • A TableStart és a TableEnd mezőknek a dokumentum ugyanazon szakaszán belül kell lenniük
  • Ha egy táblázatban használják, akkor a TableStart és a TableEnd a táblázatban ugyanazon a soron belül kell, hogy legyen
  • A körlevél-régiók egymásba ágyazhatók
  • A körlevél-régióknak jól formázottnak kell lenniük (mindig van egy pár egyező TableStart és TableEnd azonos táblanévvel)

Példaként tekintse meg az elemkatalógus bemutatóját. Íme egy részlet egy körlevélre előkészített régióból:

levelező egyesítés

Vegye figyelembe, hogy a TableStart:Item és a TableEnd:Item jelölőmezők a Word-táblázat ugyanazon sorában találhatók. A körlevél végrehajtása után a következő az eredmény:

Egyszerű körlevél

Az alábbiakban adjuk meg a régiókkal való körlevél végrehajtásához szükséges kódot:

// A teljes példákért és adatfájlokért látogasson el a https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet oldalra.

string MyAppKey = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
string MyAppSid = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/

WordsApi wordsApi = new WordsApi(MyAppKey, MyAppSid);
StorageApi storageApi = new StorageApi(MyAppKey, MyAppSid);

var fileName = "Invoice_Template.doc";
var destFileName = "Invoice_Template_out_.doc";
var data = File.ReadAllText(@"c:\Data\" + "CustomerData.xml");
string folder = null; // File exists at the root of the storage

// Töltse fel a bemeneti dokumentumot a Cloud Storage szolgáltatásba
PutCreateRequest request = new PutCreateRequest(fileName, File.OpenRead(@"c:\Data\" + fileName), null, null);
storageApi.PutCreate(request);

var executeMailMergeRequest = new PostDocumentExecuteMailMergeRequest(fileName, data, folder, destFileName: destFileName, withRegions: true);
var actual = wordsApi.PostDocumentExecuteMailMerge(executeMailMergeRequest);

Körlevél a “Bajusz” sablon szintaxis használatával

Ez a szintaxis lehetővé teszi olyan sablonok létrehozását a körlevélkészítéshez, amelyek egyszerű szöveges jelölőket használnak egyesítési mezők helyett. Ezek a jelölők így néznek ki: {{ FieldName }}

Objektum.Attribútum szintaxis

Könnyedén egyesítheti a mezők attribútumait a következő szintaxis használatával:

  {{ Address.Street }}  

Ez összevonja az XML-adatokból származó adatokat, amelyek így néznek ki:

<Order> // <-- Current context is here.  
  <Number>23</Number>  
  <Address>  
    <Street>Nelson Street</Street>  
    <Suburb>Howick</Suburb>  
    <City>Auckland</City>  
  </Address>  
  <PhoneNumber>543 1234</PhoneNumber>  
</Order>  

Foreach blokkok

A foreach címke használatával több rekord adatait egyesítheti. Ez hasonló a hagyományos egyesítési mezőkkel rendelkező körlevél-régiókhoz. Beágyazhat ilyen blokkokat.

{{ #foreach Order }}  
  {{ Number }}  
    {{ Address.Street }}  
      {{ #foreach Item }}  
        {{ Description }} {{ Cost}} {{ Total }}  
      {{/foreach Item }}  
{{ /foreach Order }} 

Ezeket a mezőket keverheti is, és más Microsoft Word mezőkbe, például IF vagy Képlet mezőkbe is elhelyezheti.

Feltételes blokk

Az Aspose.Words Cloud segítségével egyesítést használhat az IF utasítással. Az IF blokk csak akkor fut le, ha a hozzá társított logikai kifejezés igaz. Az IF szintaxisa alább látható.

{ IF "{{ GENDER }}" = “MALE” “true text” “false text” }

Az alábbiakban található a „Bajusz” sablon használatával történő körlevélkészítés kódja:

// A teljes példákért és adatfájlokért látogasson el a https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet oldalra.

string MyAppKey = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
string MyAppSid = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/

WordsApi wordsApi = new WordsApi(MyAppKey, MyAppSid);
StorageApi storageApi = new StorageApi(MyAppKey, MyAppSid);

var fileName = "VendorTemplate.doc";
var destFileName = "VendorTemplate_Out.docx";
string folder = null; // File exists at the root of the storage

var data = File.ReadAllText(@"c:\Data\" + "Vendors.xml");

// Töltse fel a bemeneti dokumentumot a Cloud Storage szolgáltatásba
PutCreateRequest request = new PutCreateRequest(fileName, File.OpenRead(@"c:\Data\" + fileName), null, null);
storageApi.PutCreate(request);

var postExecuteTemplateRequest = new PostExecuteTemplateRequest(fileName, data, folder, destFileName: destFileName);
var actual = wordsApi.PostExecuteTemplate(postExecuteTemplateRequest);

HTML beszúrása a körlevélkészítés során

Mind az executeMailMerge, mind az executeTemplate API támogatja a HTML egyesítési mezőbe történő beillesztését. Csak győződjön meg arról, hogy kihagyja a HTML-karaktereket az adatforrás-karakterláncban, és használja a “format”=“html” attribútumot az alábbiak szerint:

{     
  "dataSourceList": {   
    "contractDS": {  
      "contractDescription": {  
        "format":"html",   
        "htmlText": "<b>Test me 1<br><br><i>Test me 2<br><br><u>Test me 2</u></i></b><br>"         
      }       
    }     
  }   
}

A következő kód azt mutatja be, hogyan kell HTML-t beszúrni a körlevél-összevonás során:

// A teljes példákért és adatfájlokért látogasson el a https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet oldalra.

using System;
using System.IO;
using Aspose.Words.Cloud.Sdk;
using Aspose.Words.Cloud.Sdk.Model;
using Aspose.Words.Cloud.Sdk.Model.Requests;

namespace Aspose.Words.Cloud.Examples.CSharp
{
	public class PopulateMailMergeTemplateWithHTMLData
	{
		public static void Run()
		{
			WordsApi wordsApi = new WordsApi(Constants.AppKey, Constants.AppSID);

			try
			{
				string fileName = "template.doc";
				string destName = "Out_PostDocumentExecuteMailMergeWithHTMLData.docx";

				// Töltse fel az eredeti dokumentumot a Cloud Storage szolgáltatásba
				wordsApi.UploadFile(new UploadFileRequest(File.Open("..\\..\\..\\Resources\\" + fileName, FileMode.Open), fileName, Constants.MYStorage));

				string data = File.ReadAllText("..\\..\\..\\Resources\\TestPostDocumentExecuteMailMerge.txt", System.Text.Encoding.UTF8);
				ExecuteMailMergeRequest request = new ExecuteMailMergeRequest(fileName, data, null, Constants.MYStorage, null, null, null, null, null, null, destName);
				DocumentResponse result = wordsApi.ExecuteMailMerge(request);

			}
			catch (Exception e)
			{
				Console.WriteLine(e.ToString());
			}
		}
	}
}

Képek beszúrása a körlevélkészítés során

Az egyesítési mezőbe képeket is beszúrhat. A képek méretarányát a ‘%’, ‘px’ vagy ’ (arányos méretezés) segítségével lehet beállítani. Az alábbiakban adjuk meg a körlevél-összevonás során a képek beszúrásához szükséges kódot:

// A teljes példákért és adatfájlokért látogasson el a https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet oldalra.

string MyAppKey = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
string MyAppSid = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/

WordsApi wordsApi = new WordsApi(MyAppKey, MyAppSid);
StorageApi storageApi = new StorageApi(MyAppKey, MyAppSid);

var fileName = "TestMailMergeWithImages.doc";
var destFileName = "TestMailMergeWithImages_Out.docx";
var data = File.ReadAllText(WordsExamples.PathToDataFiles + @"\DocumentActions\MailMerge\" + "MailMergeData.txt");
string folder = null; // File exists at the root of the storage

// Töltse fel a bemeneti dokumentumot a Cloud Storage szolgáltatásba
PutCreateRequest request = new PutCreateRequest(fileName, File.OpenRead(WordsExamples.PathToDataFiles + @"\DocumentActions\MailMerge\" + fileName), null, null);
storageApi.PutCreate(request);

var executeMailMergeRequest = new PostDocumentExecuteMailMergeRequest(fileName, data, folder, destFileName: destFileName, withRegions: false);
var actual = wordsApi.PostDocumentExecuteMailMerge(executeMailMergeRequest);

Cloud SDK-k

Bár a fenti kód .NET-ben található, az Aspose.Words Cloud SDK-k öt különböző nyelven érhetők el: .NET, Java, Ruby, Python és Node.js. Ezért kényelmesen hívhatja a körlevél API-kat ezen nyelvek bármelyikén.

Ajánlott bejegyzés: