C#操作word之寫入特殊字符、選擇框


在編寫word文檔的時候常常需要我們輸入特殊的符號,比如選擇框,打上勾的選擇框,或者其他一些特殊字符,如下

一般來說有些字符,其實直接按照原樣復制一個,作為替換字符就行了,就像我們上面的最后一個方框,其實可以復制直接粘貼單VS的編輯器中,但是一些

比較特殊的字符,復制到VS的編輯器中是不管用的,最后什么都看不到,對於那些我們就要用其他辦法了。總之如果可以直接讓其在VS編輯器當做字符顯示出來,

那就不要特殊方法了(其實很多字符我們可以通過一些搜狗輸入法的,特殊字符選擇)

當我們要在word中輸入選擇框和打鈎的選擇框,我們可以這樣:插入->符號->字體選擇“Wingdings 2”。里面就有我們需要的選擇框,

這里我們看到我們需要的打鈎選擇框的,字體是Wingdings 2,然后16進制的字符代碼是0052,這樣我們就可以利用這個來實現我們需要的字符

用之前同樣的模板但是我們希望在性別這一欄采用選中框的方式展現效果,類似這樣的

 姓名  張三  性別  
 籍貫  浙江  學歷  本科
 家庭地址  浙江省未名市未名區未名街
 電話  12345678  省份證號  123456789012345678

 

 /// <summary>
        /// 替換word中的文本,並導出word,輸出選擇框
        /// </summary>
        protected void ReplaceToExcel()
        {           
            Word.Application app = null;
            Word.Document doc = null;
            //將要導出的新word文件名
            string newFile = DateTime.Now.ToString("yyyyMMddHHmmssss") + ".doc";
            string physicNewFile = Server.MapPath(DateTime.Now.ToString("yyyyMMddHHmmssss") + ".doc");
            try
            {
                app = new Word.Application();//創建word應用程序
                object fileName = Server.MapPath("template.doc");//模板文件
                //打開模板文件
                object oMissing = System.Reflection.Missing.Value;
                doc = app.Documents.Open(ref fileName,
                ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                //構造數據
                Dictionary<string, string> datas = new Dictionary<string, string>();
                datas.Add("{name}", "張三");
                datas.Add("{sex}", "");
                datas.Add("{provinve}", "浙江");
                datas.Add("{address}", "浙江省杭州市");
                datas.Add("{education}", "本科");
                datas.Add("{telephone}", "12345678");
                datas.Add("{cardno}", "123456789012345678");

                object replace = Word.WdReplace.wdReplaceAll;
                foreach (var item in datas)
                {
                    app.Selection.Find.Replacement.ClearFormatting();
                    app.Selection.Find.ClearFormatting();
                    app.Selection.Find.Text = item.Key;//需要被替換的文本
                    if (item.Key == "{sex}")
                    {
                        app.Selection.Find.Replacement.Font.Name = "Wingdings 2";//這里設置字體類型
                        //Wingdings 2字體下的\u0052代表打鈎的選擇框,\u00A3代表未打鈎的選擇框
                        if (item.Value == "")
                        {
                            app.Selection.Find.Replacement.Text = "\u0052男\u00A3女";
                        }
                        else
                        {
                            app.Selection.Find.Replacement.Text = "\u00A3男\u0052女";
                        }
                    }
                    else
                    {
                        app.Selection.Find.Replacement.Text = item.Value;//替換文本 
                    }
                    //執行替換操作
                    app.Selection.Find.Execute(
                    ref oMissing, ref oMissing,
                    ref oMissing, ref oMissing,
                    ref oMissing, ref oMissing,
                    ref oMissing, ref oMissing, ref oMissing,
                    ref oMissing, ref replace,
                    ref oMissing, ref oMissing,
                    ref oMissing, ref oMissing);
                }
                //對替換好的word模板另存為一個新的word文檔
                doc.SaveAs(physicNewFile,
                oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing,
                oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
            }
            catch (Exception ex)
            {

            }
            finally
            {
                if (doc != null)
                {
                    doc.Close();//關閉word文檔
                }
                if (app != null)
                {
                    app.Quit();//退出word應用程序
                }
            }            
        }

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM