Mail Mergeแม่แบบจากMustacheไวยากรณ์
Aspose.Wordsช่วยให้คุณสร้างเทมเพลตที่มีไวยากรณ์mustacheนอกเหนือจากเทมเพลตที่คุ้นเคย Mustacheเป็นตัวแปรทางเลือกของไวยากรณ์แม่แบบที่ประกอบด้วยชื่อแท็กที่ล้อมรอบด้วยและได้รับก.
ไวยากรณ์Mustacheเป็นตัวเลือกเดียวที่จะใช้กับเทมเพลตที่ไม่มีฟิลด์เช่นHTMLและTXTเทมเพลต ด้วยWordแม่แบบ,คุณมีสองตัวเลือกอย่างใดอย่างหนึ่งที่จะใช้ฟิลด์หรือMustacheไวยากรณ์.
ไวยากรณ์Mustacheรองรับแท็กforeachซึ่งเป็นทางเลือกสำหรับการใช้Mail Mergeกับภูมิภาค ดังนั้นประโยชน์คือการที่คุณสามารถใช้mustacheไวยากรณ์ถ้าด้วยเหตุผลบางอย่างที่คุณไม่สามารถ.
คุณยังสามารถรวมฟิลด์Mail Mergeกับฟิลด์เพิ่มเติมบางฟิลด์โดยใช้แท็กforeachตามที่แสดงในภาพด้านล่าง.

สร้างเทมเพลตMustache
จุดสำคัญแรกที่จะชี้แจงคือMustacheไม่ได้เป็นเครื่องยนต์เทมเพลต Mustacheเป็นตัวแปรไวยากรณ์อื่นที่สามารถใช้ได้สำหรับแม่แบบใดๆในload formatได้รับการสนับสนุนโดยAspose.Words คุณเพียงแค่ต้องรวมไวยากรณ์บางอย่างและสอดคล้องกับข้อกำหนดMustache.
สมมติว่าคุณจำเป็นต้องส่งอีเมลเดียวกันไปยังผู้รับ 50 เพื่อปรับแต่งคำอวยพรด้วยชื่อแรกที่สอ คุณสามารถแทนที่ชื่อแรกของผู้รับโดยตัวยึดตำแหน่งบางส่วนดังต่อไปนี้:
Dear {{FirstName}}
I hereby…
คำถามที่นี่:วิธีที่คุณสามารถสร้าง 50 อีเมล์จาก 1 เดี่ยวMustacheแม่แบบ? เพื่อตอบคำถามนั้นคุณต้องดำเนินการMail Mergeกับภูมิภาคเพื่อเติมวงเล็บปีกกาหยิกสำหรับตัวยึดตำแ.

ทำงานกับMustacheไวยากรณ์
Mustacheจะแสดงเป็นลำดับตรรกะน้อยลงเนื่องจากขาดคำสั่งการควบคุมใดๆที่เฉพาะเจาะจงเช่นforลูปและifและelseเงื่อนไข แต่คุณสามารถใช้รายการการประมวลผลแท็กส่วนและแลมบ์ดาเพื่อให้บรรลุการประเมิน ดังนั้นเพื่อรวมไวยากรณ์MustacheภายในMail Mergeการดำเนินการ,คุณจะต้องใช้คุณสมบัติUseNonMergeFieldsและตั้งค่าเป็นTrue.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแทนที่แท็กMustacheด้วยข้อมูลที่ระบุ:
// 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 destinations - Vendor.docx"); | |
// Loop through each row and fill it with data. | |
DataTable dataTable = new DataTable("list"); | |
dataTable.Columns.Add("Number"); | |
for (int i = 0; i < 10; i++) | |
{ | |
DataRow dataRow = dataTable.NewRow(); | |
dataTable.Rows.Add(dataRow); | |
dataRow[0] = "Number " + i; | |
} | |
// Activate performing a mail merge operation into additional field types. | |
doc.MailMerge.UseNonMergeFields = true; | |
doc.MailMerge.ExecuteWithRegions(dataTable); | |
doc.Save(ArtifactsDir + "WorkingWithXmlData.MustacheSyntaxUsingDataTable.docx"); |
คุณสามารถสังเกตเห็นความแตกต่างระหว่างเอกสารก่อนที่จะประมวลผลMail Mergeกับภูมิภาคพร้อมกับใช้คุณสมบัติUseNonMergeFields:

{{#foreach list}}
เริ่มส่วน"โฟร์"ในขณะที่{{/foreach list}}
สิ้นสุดลง.
และหลังจากใช้Mail Mergeกับภูมิภาค:

ใช้ฟิลด์IF
เพื่อสร้างMail Mergeอัจฉริยะ
Aspose.Wordsอนุญาตให้คุณใช้Mail Mergeฟิลด์และMustacheแท็กที่มีคำสั่งIF
ฟิลด์IF
สามารถใช้ในเอกสารMail Mergeเพื่อระงับช่องว่างและเครื่องหมายจุลภาคที่ไม่ต้องการหากฟิลด์ว่างเปล่า.
สูตรฟิลด์IF
แสดงด้านล่าง:
{ IF [Condition] [Display Result 1] [Display Result 2] }
ที่นี่เงื่อนไขสามารถเป็นฟิลด์ผสานหรือแท็กMustache.
ตัวอย่างเช่นคุณสามารถใช้ฟิลด์IF
หากคุณต้องการแทรก"ของเขา",“เธอ”,“เขา"หรือ"เธอ"ขึ้นอยู่กับเพศดังต่อไปนี้:
{ IF { MERGEFIELD Gender } = “MALE” “ข้อความจริง” “ข้อความเท็จ”}
{ IF “{{ GENDER }}” = “MALE” “ข้อความจริง” “ข้อความเท็จ”}
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการดำเนินการMail Mergeด้วยMustacheแท็กและIF
ฟิลด์:
// 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 destinations - Mustache syntax.docx"); | |
doc.MailMerge.UseNonMergeFields = true; | |
doc.MailMerge.Execute(new[] { "GENDER" }, new object[] { "MALE" }); | |
doc.Save(ArtifactsDir + "BaseOperations.IfElseMustache.docx"); |
คุณสามารถสังเกตเห็นความแตกต่างระหว่างเอกสารก่อนที่จะใช้คุณสมบัติUseNonMergeFields:

และหลังจากใช้คุณสมบัติUseNonMergeFields:
