溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

C# 創(chuàng)建郵件合并模板并合并文本、圖片

發(fā)布時(shí)間:2020-04-27 00:02:36 來(lái)源:網(wǎng)絡(luò) 閱讀:969 作者:E_iceblue 欄目:編程語(yǔ)言

對(duì)于Word中的郵件合并功能,用戶(hù)可以將郵件合并后的結(jié)果文檔保存并打印,也可以通過(guò)郵件的形式發(fā)送,在很多場(chǎng)合需要使用到此功能。那對(duì)于編程人員,我們也可以在C#語(yǔ)言環(huán)境中通過(guò)代碼的形式來(lái)實(shí)現(xiàn)。根據(jù)需要先創(chuàng)建郵件合并模板后,可合并文本和圖片,在下面的方法中,需要使用到組件Spire.Doc for .NET 。創(chuàng)建模板前,需先安裝該組件,注意添加引用該組件dll文件到控制臺(tái)應(yīng)用程序中,同時(shí)添加命名空間。

一、創(chuàng)建郵件合并模板

第一步:添加命名空間

using System;
using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
using Spire.Doc.Fields;

第二步:主要代碼段

//創(chuàng)建一個(gè)Document類(lèi)對(duì)象,并添加Section
Document document = new Document();
Section section = document.AddSection();

//添加段落到Section,并向段落添加文字,設(shè)置文字顏色、字體粗細(xì)
Paragraph paragraph = section.AddParagraph();
TextRange tr = paragraph.AppendText("人 物 基 本 信 息");
tr.CharacterFormat.TextColor = Color.YellowGreen;
tr.CharacterFormat.Bold = true;

//添加文本,并添加合并域“Image:Portrait”
paragraph.AppendText("\n人 物 肖 像 : ");
paragraph.AppendField("Image:Portrait", FieldType.FieldMergeField);

//添加文本,并添加合并域“Name”
paragraph.AppendText("\n姓 名 : ");
paragraph.AppendField("Name", FieldType.FieldMergeField);

//添加文本,并添加合并域“Nation”
paragraph.AppendText("\n民 族 :");
paragraph.AppendField("Nation", FieldType.FieldMergeField);

//添加文本,并添加合并域“Nationality”
paragraph.AppendText("\n國(guó) 籍 : ");
paragraph.AppendField("Nationality", FieldType.FieldMergeField);

//添加文本,并添加合并域“Graduated From”
paragraph.AppendText("\n院 校 : ");
paragraph.AppendField("Graduated From", FieldType.FieldMergeField);

//保存并打開(kāi)文檔
document.SaveToFile("模板.docx", FileFormat.Docx2013);
System.Diagnostics.Process.Start("模板.docx");

完成以上步驟后,調(diào)試運(yùn)行程序,生成文件(可在項(xiàng)目文件下bin>Debug中查看)
如下圖:
C# 創(chuàng)建郵件合并模板并合并文本、圖片

二:合并文本、圖片

在完成模板創(chuàng)建之后,可添加文本和圖片,如下:
第一步:添加命名空間

using System;
using Spire.Doc;
using System.Drawing;
using Spire.Doc.Reporting;

第二步:主要代碼段

static void Main(string[] args)
        {
            //實(shí)例化一個(gè)Document類(lèi),并加載文檔模板
            Document doc = new Document();
            doc.LoadFromFile(@"C:\Users\Administrator\Desktop\模板.docx");
            var textFieldNames = new string[] { "Name", "Nation", "Nationality", "Graduated From"};
            var textFieldValues = new string[] { "喬 治?華 盛 頓 (George Washington)", "美 利 堅(jiān) 民 族", "美 國(guó)", "威 廉 與 瑪 麗 學(xué) 院 (William and Mary)"};
            var imageFieldNames = new string[] { "Portrait" };
            var imageFieldValues = new string[] { @"C:\Users\Administrator\Desktop\images\華盛頓.jpg" };

            //合并文本到模板
            doc.MailMerge.Execute(textFieldNames, textFieldValues);

            //創(chuàng)建合并圖片自定義事件
            doc.MailMerge.MergeImageField += new MergeImageFieldEventHandler(MailMerge_MergeImageField);

            //合并圖片到模板
            doc.MailMerge.Execute(imageFieldNames, imageFieldValues);

            //保存并打開(kāi)文檔
            doc.SaveToFile("result.docx", FileFormat.Docx);
            System.Diagnostics.Process.Start("result.docx");
        }
        //添加自定義事件載入圖片
        static void MailMerge_MergeImageField(object sender, MergeImageFieldEventArgs field)
        {
            string filePath = field.FieldValue as string;
            if (!string.IsNullOrEmpty(filePath))
            {
                field.Image = Image.FromFile(filePath);
            }
        }

運(yùn)行程序,生成文件,如下圖:

C# 創(chuàng)建郵件合并模板并合并文本、圖片

以上全部?jī)?nèi)容為本文創(chuàng)建郵件合并模板并合并文本和圖片的方法講述,方法中使用到的組件Spire.Doc for .NET在處理Word文檔方面具有很好的輔助作用,感興趣的話(huà)可以動(dòng)手試試。如果本文對(duì)你有所幫助,歡迎轉(zhuǎn)載(轉(zhuǎn)載請(qǐng)注明出處)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI