ფოსტის შერწყმა არის Microsoft Word-ის ფუნქცია, რომელიც სწრაფად და მარტივად ქმნის დოკუმენტებს, როგორიცაა ასოები, ეტიკეტები და კონვერტები. Aspose.Words Cloud იღებს სტანდარტული ფოსტის შერწყმას და წინ უსწრებს მას მრავალი ნაბიჯით, აქცევს მას სრულფასოვან საანგარიშო გადაწყვეტად, რომელიც საშუალებას გაძლევთ შექმნათ კიდევ უფრო რთული დოკუმენტები, როგორიცაა ანგარიშები, კატალოგები, ინვენტარი და ინვოისები. Aspose.Words Cloud საანგარიშო გადაწყვეტის უპირატესობებია:
- ანგარიშების დიზაინი Microsoft Word-ში სტანდარტული ფოსტის შერწყმის ველების გამოყენებით
- განსაზღვრეთ დოკუმენტში მზარდი რეგიონები, როგორიცაა შეკვეთის დეტალური რიგები
- სურათების ჩასმა ფოსტის შერწყმის დროს
- HTML-ის ჩასმა ფოსტის შერწყმისას
ძირითადი ნაბიჯები
ფოსტის შერწყმის საფეხურები საკმაოდ მარტივია. პირველ რიგში, თქვენ იყენებთ Microsoft Word-ს Word დოკუმენტის შესაქმნელად და დიზაინისთვის, რომელსაც ჩვეულებრივ შაბლონს უწოდებენ. გაითვალისწინეთ, რომ დოკუმენტი არ უნდა იყოს Microsoft Word-ის შაბლონი (.dot), ის შეიძლება იყოს ჩვეულებრივი .doc დოკუმენტი. თქვენ ჩასვით რამდენიმე სპეციალური ველი, სახელწოდებით შერწყმის ველები შაბლონში იმ ადგილებში, სადაც გსურთ, რომ მონაცემები თქვენი მონაცემთა წყაროდან მოგვიანებით ჩასვათ. შემდეგ Aspose.Words REST API-ით თქვენ ასრულებთ ფოსტის შერწყმის ოპერაციას. ფოსტის შერწყმის ოპერაცია მიიღებს მონაცემებს თქვენი მონაცემთა წყაროდან და აერთიანებს მას დოკუმენტში.
თქვენ ასევე შეგიძლიათ მიუთითოთ დოკუმენტში განმეორებადი შერწყმის რეგიონები ან ჩასვათ სპეციალური შერწყმის ველები, რომლებიც საშუალებას მოგცემთ ჩადოთ სხვა შინაარსი, როგორიცაა სურათები. იმის მიხედვით, თუ როგორ დააყენებთ ფოსტის შერწყმის ველებს და განმეორებად რეგიონებს დოკუმენტის შიგნით, დოკუმენტი გაიზრდება ისე, რომ თქვენს მონაცემთა წყაროში მრავალი ჩანაწერი განთავსდეს. თუ არ იყენებთ ფოსტის შერწყმის რეგიონებს, მაშინ ფოსტის შერწყმა იქნება Microsoft Word-ის ფოსტის შერწყმის მსგავსი და დოკუმენტის მთლიანი შინაარსი განმეორდება მონაცემთა წყაროში თითოეული ჩანაწერისთვის. განმეორებადი ფოსტის შერწყმის რეგიონების გამოყენებით, შეგიძლიათ მიუთითოთ ნაწილები დოკუმენტის შიგნით, რომლებიც განმეორდება მონაცემთა წყაროს თითოეულ ჩანაწერზე. მაგალითად, თუ ცხრილის სტრიქონს მონიშნავთ განმეორებად რეგიონად, მაშინ ცხრილის ეს მწკრივი განმეორდება, რაც გამოიწვევს ცხრილის დინამიკურ ზრდას თქვენი ყველა მონაცემის დასაკმაყოფილებლად.
მოამზადეთ დოკუმენტი
სანამ ფოსტის შერწყმას განახორციელებთ, თქვენ უნდა მოამზადოთ დოკუმენტის შაბლონი. თქვენ უნდა ჩასვათ შერწყმის ველები, რომლებიც შეიცვლება მნიშვნელობებით თქვენი მონაცემთა წყაროდან.
შერწყმის ველების ჩასმა დოკუმენტში
შერწყმის ველების დოკუმენტში ჩასმა:
- გახსენით თქვენი დოკუმენტი Microsoft Word-ში.
- დოკუმენტში დააწკაპუნეთ იქ, სადაც გსურთ გაერთიანების ველის განთავსება.
- გახსენით ჩასმა მენიუ და აირჩიეთ ველი ველის დიალოგის გასახსნელად.
- ველების სახელების სიიდან აირჩიეთ MergeField.
- ველის სახელის ტექსტურ ველში შეიყვანეთ შერწყმის ველის სახელი და დააჭირეთ OK.
ვინაიდან შერწყმის ველი არის ჩვეულებრივი Microsoft Word ველი, შეგიძლიათ გადახვიდეთ თქვენს დოკუმენტში ველების კოდებისა და შედეგების ჩვენებას შორის Microsoft Word-ში კლავიატურის მალსახმობის Alt+F9 გამოყენებით. ველის კოდები ჩნდება ხვეულ ბრეკეტებს შორის.
მარტივი ფოსტის შერწყმა
იმისათვის, რომ მოამზადოთ თქვენი შაბლონი ფოსტის მარტივი შერწყმის შესასრულებლად (რეგიონების გარეშე, Microsoft Word-ში ხელმისაწვდომი ფოსტის კლასიკური შერწყმის მსგავსი) თქვენ უბრალოდ უნდა ჩასვათ ერთი ან მეტი შერწყმის ველი იმ ადგილებში, სადაც გსურთ მონაცემთა წყაროს მონაცემებით შევსება. .
მოდით გადავხედოთ სადილის მოწვევის დემო ვერსიას. ის ქმნის წერილს მონაცემთა წყაროში განსაზღვრული კლიენტების სიისთვის. შაბლონი შეიცავს უამრავ შერწყმის ველს, რომლებიც შევსებულია მონაცემთა ორი წყაროდან; სხვა სიტყვებით რომ ვთქვათ, ორი ფოსტის შერწყმა ხდება ერთმანეთის მიყოლებით. პირველი, მონაცემები პირველი მონაცემთა წყაროდან გაერთიანდება შაბლონში. მონაცემთა ეს წყარო შეიცავს მხოლოდ ერთ რიგს, რადგან ეს არის ინფორმაცია მომწვევის შესახებ, ამიტომ დოკუმენტის მთელი შინაარსი არ მეორდება და მხოლოდ შესაბამისი ველები ივსება მონაცემებით. შემდეგ შესრულებულია ფოსტის შერწყმის მეორე ოპერაცია. მონაცემთა წყარო, რომელსაც ის იყენებს, შეიცავს ინფორმაციას კლიენტების შესახებ. მთელი შაბლონი მეორდება მონაცემთა თითოეული მწკრივისთვის და ყოველი განმეორებითი ასლი ივსება შესაბამისი კლიენტის მონაცემებით.
შედეგად, ჩვენ გვაქვს დოკუმენტი, რომელიც შედგება ხუთი შევსებული, სრული და პერსონალიზებული მოწვევის წერილისგან (პირველის ფრაგმენტი ნაჩვენებია ქვემოთ):
როგორც ხედავთ, შესაძლებელია და ზოგჯერ სასარგებლოც არის ერთზე მეტი შერწყმის ოპერაციების შესრულება ერთიდაიგივე შაბლონით მონაცემების ეტაპობრივად დასამატებლად. შეგიძლიათ Word დოკუმენტში NEXT ველების ჩასმა, რათა ფოსტის შერწყმის ძრავამ შეარჩიოს შემდეგი ჩანაწერი მონაცემთა წყაროდან და გააგრძელოს შერწყმა. როდესაც ძრავა შეხვდება NEXT ველს, ის უბრალოდ ირჩევს შემდეგ ჩანაწერს მონაცემთა წყაროში და აგრძელებს შერწყმას რაიმე შინაარსის კოპირების გარეშე. ეს შეიძლება გამოყენებულ იქნას დოკუმენტების შექმნისას, როგორიცაა საფოსტო ეტიკეტები.
მარტივი ფოსტის შერწყმის კოდი მოცემულია ქვემოთ:
// სრული მაგალითებისა და მონაცემთა ფაილებისთვის გთხოვთ ეწვიოთ https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet
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
// ატვირთეთ საწყისი დოკუმენტი Cloud Storage-ში
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: false);
var actual = wordsApi.PostDocumentExecuteMailMerge(executeMailMergeRequest);
// შეასრულეთ ფოსტის შერწყმის ოპერაცია მეორედ
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);
ფოსტის შერწყმა რეგიონებთან
თუ გსურთ დინამიურად გაზარდოთ ნაწილები დოკუმენტის შიგნით, გამოიყენეთ ფოსტის შერწყმა რეგიონებთან. დოკუმენტში ფოსტის შერწყმის რეგიონის დასაზუსტებლად, თქვენ უნდა ჩასვათ ფოსტის შერწყმის ორი ველი, რათა მონიშნოთ ფოსტის შერწყმის რეგიონის დასაწყისი და დასასრული. დოკუმენტის მთელი შინაარსი, რომელიც შედის ფოსტის შერწყმის რეგიონში, ავტომატურად განმეორდება მონაცემთა წყაროს ყველა ჩანაწერზე.
ფოსტის შერწყმის რეგიონის დასაწყისის აღსანიშნავად, ჩადეთ MERGEFIELD სახელწოდებით TableStart:MyTable, სადაც MyTable შეესაბამება ტეგს ან კლავიშს XML ან JSON შესაბამისად. ფოსტის შერწყმის რეგიონის დასასრულის აღსანიშნავად, ჩადეთ სხვა MERGEFIELD სახელწოდებით TableEnd:MyTable. ამ მარკირების ველებს შორის მოათავსეთ შერწყმის ველები, რომლებიც შეესაბამება თქვენი მონაცემთა წყაროს ველებს. ეს შერწყმის ველები შეივსება მონაცემთა წყაროს პირველი რიგის მონაცემებით, შემდეგ განმეორდება მთელი რეგიონი, ხოლო ახალი ველები მეორე რიგის მონაცემებით და ა.შ.
რეგიონის მონიშვნისას დაიცავით ეს მარტივი წესები:
- TableStart და TableEnd ველები უნდა იყოს დოკუმენტის იმავე განყოფილებაში
- თუ გამოიყენება ცხრილის შიგნით, TableStart და TableEnd უნდა იყოს ცხრილის იმავე სტრიქონში
- ფოსტის შერწყმის რეგიონები შეიძლება იყოს ჩადებული ერთმანეთში
- ფოსტის შერწყმის რეგიონები უნდა იყოს კარგად ჩამოყალიბებული (ყოველთვის არის წყვილი შესატყვისი TableStart და TableEnd ცხრილის ერთიდაიგივე სახელით)
მაგალითად, შეხედეთ ნივთების კატალოგის დემო ვერსიას. აქ არის ფოსტის შერწყმისთვის მომზადებული რეგიონის ფრაგმენტი:
გაითვალისწინეთ, რომ ორივე მარკირების ველი TableStart:Item და TableEnd:Item მოთავსებულია Word ცხრილის იმავე სტრიქონში. ფოსტის შერწყმის შესრულების შემდეგ, აი შედეგი:
კოდი რეგიონებთან ფოსტის შერწყმის შესასრულებლად მოცემულია ქვემოთ:
// სრული მაგალითებისა და მონაცემთა ფაილებისთვის გთხოვთ ეწვიოთ https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet
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
// შეყვანის დოკუმენტის ატვირთვა Cloud Storage-ში
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);
ფოსტის შერწყმა „ულვაშის“ შაბლონის სინტაქსის გამოყენებით
ეს სინტაქსი საშუალებას გაძლევთ შექმნათ შაბლონები ფოსტის შერწყმისას, რომლებიც იყენებენ უბრალო ტექსტის მარკერებს შერწყმის ველების ნაცვლად. ეს მარკერები ასე გამოიყურება: {{ FieldName }}
ობიექტი.ატრიბუტის სინტაქსი
თქვენ შეგიძლიათ მარტივად გააერთიანოთ ველების ატრიბუტები შემდეგი სინტაქსის გამოყენებით:
{{ Address.Street }}
ეს გააერთიანებს მონაცემებს XML მონაცემებიდან, რომელიც ასე გამოიყურება:
<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 ბლოკები
თქვენ შეგიძლიათ შეაერთოთ მონაცემები მრავალი ჩანაწერიდან foreach ტეგის გამოყენებით. ეს ჰგავს ფოსტის შერწყმის რეგიონებს ჩვეულებრივი შერწყმის ველებით. თქვენ შეგიძლიათ მოაწყოთ ასეთი ბლოკები.
{{ #foreach Order }}
{{ Number }}
{{ Address.Street }}
{{ #foreach Item }}
{{ Description }} {{ Cost}} {{ Total }}
{{/foreach Item }}
{{ /foreach Order }}
თქვენ ასევე შეგიძლიათ აურიოთ ეს ველები და განათავსოთ ისინი Microsoft Word-ის სხვა ველებში, როგორიცაა IF ან Formula ველები.
პირობითი ბლოკი
შეგიძლიათ გამოიყენოთ ფოსტის შერწყმა IF განცხადებასთან Aspose.Words Cloud-ის გამოყენებით. IF ბლოკი ახორციელებს მხოლოდ იმ შემთხვევაში, თუ მასთან დაკავშირებული ლოგიკური გამოხატულება არის true. IF-ის სინტაქსი ნაჩვენებია ქვემოთ.
{ IF "{{ GENDER }}" = “MALE” “true text” “false text” }
კოდი, რომ შეასრულოთ ფოსტის შერწყმა „ულვაშების“ შაბლონის გამოყენებით, მოცემულია ქვემოთ:
// სრული მაგალითებისა და მონაცემთა ფაილებისთვის, გთხოვთ, ეწვიოთ https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet
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");
// შეყვანის დოკუმენტის ატვირთვა Cloud Storage-ში
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-ის ჩასმა ფოსტის შერწყმის დროს
ორივე executeMailMerge და executeTemplate API უზრუნველყოფს გაერთიანების ველში HTML-ის ჩასმას. თქვენ უბრალოდ უნდა დარწმუნდეთ, რომ გაურბიხართ HTML სიმბოლოებს მონაცემთა წყაროს სტრიქონში და გამოიყენეთ “format”=“html” ატრიბუტი, როგორც ეს ნაჩვენებია ქვემოთ:
{
"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>"
}
}
}
}
შემდეგი კოდი გვიჩვენებს, თუ როგორ უნდა ჩასვათ HTML ფოსტის შერწყმის დროს:
// სრული მაგალითებისა და მონაცემთა ფაილებისთვის გთხოვთ ეწვიოთ https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet
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";
// ატვირთეთ ორიგინალი დოკუმენტი Cloud Storage-ში
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());
}
}
}
}
სურათების ჩასმა ფოსტის შერწყმის დროს
თქვენ ასევე შეგიძლიათ სურათების ჩასმა შერწყმის ველში. სურათების მასშტაბის კოეფიციენტის დაყენება შესაძლებელია ‘%’, ‘px’ ან ‘-ის გამოყენებით (პროპორციული მასშტაბირება).ფოსტის შერწყმის დროს სურათების ჩასმის კოდი მოცემულია ქვემოთ:
// სრული მაგალითებისა და მონაცემთა ფაილებისთვის გთხოვთ ეწვიოთ https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet
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
// შეყვანის დოკუმენტის ატვირთვა Cloud Storage-ში
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);
ღრუბლოვანი SDK-ები
მიუხედავად იმისა, რომ ზემოაღნიშნული კოდი არის .NET-ში, Aspose.Words Cloud SDKs ხელმისაწვდომია ხუთ სხვადასხვა ენაზე: .NET, Java, Ruby, Python და Node.js. ამიტომ, შეგიძლიათ მოხერხებულად დარეკოთ Mail Merge API-ები რომელიმე ამ ენაზე.