国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

c# 實(shí)現(xiàn)Word聯(lián)接Excel的MailMerge功能

2024-07-21 02:30:18
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

目標(biāo):使用word的mailmerge功能,數(shù)據(jù)源是excel中的數(shù)據(jù)。這些資料在網(wǎng)上很少,只能自己慢慢測(cè)試了。

關(guān)于word的mailmerge功能:

word提供郵件的模板,可以選擇各種數(shù)據(jù)源,比如數(shù)據(jù)庫(kù),excel等,然后群發(fā)(或打印、另存文件)郵件。

 

為了實(shí)現(xiàn)這個(gè)功能,我的程序要能做的是

1:打開(kāi)word文件對(duì)象

2:設(shè)置mailmerge數(shù)據(jù)源:指定excel,指定查詢語(yǔ)句,指定聯(lián)接的列s

3:關(guān)閉保存

 

關(guān)于引用:

using word = microsoft.office.interop.word;

using system.reflection;

using system.diagnostics;

using system.io;

關(guān)于變量:word的com對(duì)象需要傳入的參數(shù)定義

        word.application wordapp = new microsoft.office.interop.word.application();

        object missing = system.reflection.missing.value;

        object falsevalue = false;

        object truevalue = true;

關(guān)于處理

  需要注意的是

  1:打開(kāi)word的方式

  2:query的寫(xiě)法。類似于sql一般,比較好玩。

  3:設(shè)置列,。設(shè)置之后,在word中可以看見(jiàn)這些列。

  4:關(guān)閉word之后,還得再copy一次excel。直接生成之后的excel文件size暴漲,文件還打不開(kāi),所以覆蓋一遍了之。原因不詳。

   private void button1_click(object sender, eventargs e)

        {

            object filename = copytemplatedoc();//copy doc in

            word.document doc = wordapp.documents.open(ref filename, ref missing, ref falsevalue, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref truevalue, ref missing, ref missing, ref missing);

            object linkto = copyexceldata();//copy excel data

            object query = "select * from `sheet1$`";//data from sheet1

            object header = "name,category,address,content";//filed list

            try

            {

                doc.mailmerge.createdatasource(ref linkto, ref missing, ref missing, ref header, ref falsevalue, ref query, ref missing, ref missing, ref truevalue);

                doc.mailmerge.fields.add(wordapp.selection.range, "name");//add one filed to test

                messagebox.show("success");

            }

            catch (exception ex)

            {

                messagebox.show(ex.message);

            }

            finally

            {

                doc.save();//save word

                closeapp();//close word app

                copyexceldata();//copy data again,*******************

            }

        }

關(guān)于關(guān)閉word對(duì)象

         public void closeapp()
        {
            wordapp.documents.close(ref truevalue, ref missing, ref missing);
            wordapp.quit(ref truevalue, ref missing, ref missing);
            system.runtime.interopservices.marshal.releasecomobject(wordapp);
            gc.collect();

            //this.killexcelprocess();
        }

還有兩個(gè)工具函數(shù)不再贅述,用來(lái)copy文件并且返回文件名private string copyexceldata();和private string copytemplatedoc()。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 娱乐| 钟祥市| 石家庄市| 虞城县| 孙吴县| 长治市| 莎车县| 巴马| 岑巩县| 襄城县| 江华| 绥芬河市| 康马县| 孝义市| 商水县| 台江县| 星座| 内丘县| 鹰潭市| 琼海市| 城口县| 江阴市| 铜川市| 灵璧县| 板桥市| 浦城县| 西充县| 隆林| 太保市| 阜新市| 旌德县| 清水河县| 会同县| 铅山县| 凌云县| 个旧市| 青岛市| 徐闻县| 汕头市| 青岛市| 微山县|