亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#根據Word模版生成Word文件

2019-10-29 21:08:57
字體:
來源:轉載
供稿:網友

本文實例為大家分享了C#根據Word模版生成Word文的具體代碼,供大家參考,具體內容如下

1、指定的word模版

C#,Word模版,Word文件

2、生成word類

添加com Microsoft word 11.0 Object Library 引用

using System;using System.Collections.Generic;using System.Data;using System.Windows.Forms;using Word = Microsoft.Office.Interop.Word;using System.IO; namespace Headfree.DefUI{  public class WordUtility  {    private object tempFile = null;    private object saveFile = null;    private static Word._Document wDoc = null; //word文檔    private static Word._Application wApp = null; //word進程    private object missing = System.Reflection.Missing.Value;     public WordUtility(string tempFile, string saveFile)    {      this.tempFile = Path.Combine(Application.StartupPath, @tempFile);      this.saveFile = Path.Combine(Application.StartupPath, @saveFile);    }     /// <summary>    /// 模版包含頭部信息和表格,表格重復使用    /// </summary>    /// <param name="dt">重復表格的數據</param>    /// <param name="expPairColumn">word中要替換的表達式和表格字段的對應關系</param>    /// <param name="simpleExpPairValue">簡單的非重復型數據</param>    public bool GenerateWord(DataTable dt, Dictionary<string, string> expPairColumn, Dictionary<string, string> simpleExpPairValue)    {      if (!File.Exists(tempFile.ToString()))      {        MessageBox.Show(string.Format("{0}模版文件不存在,請先設置模版文件。", tempFile.ToString()));        return false;      }      try      {        wApp = new Word.Application();         wApp.Visible = false;         wDoc = wApp.Documents.Add(ref tempFile, ref missing, ref missing, ref missing);         wDoc.Activate();// 當前文檔置前         bool isGenerate = false;         if (simpleExpPairValue != null && simpleExpPairValue.Count > 0)          isGenerate = ReplaceAllRang(simpleExpPairValue);         // 表格有重復        if (dt != null && dt.Rows.Count > 0 && expPairColumn != null && expPairColumn.Count > 0)          isGenerate = GenerateTable(dt, expPairColumn);         if (isGenerate)          wDoc.SaveAs(ref saveFile, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,            ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);         DisposeWord();         return true;      }      catch (Exception ex)      {        MessageBox.Show("生成失敗" + ex.Message);        return false;      }    }     /// <summary>    /// 單個替換 模版沒有重復使用的表格    /// </summary>    /// <param name="dc">要替換的</param>    public bool GenerateWord(Dictionary<string, string> dc)    {      return GenerateWord(null, null, dc);    }      private bool GenerateTable(DataTable dt, Dictionary<string, string> expPairColumn)    {      try      {        int tableNums = dt.Rows.Count;         Word.Table tb = wDoc.Tables[1];         tb.Range.Copy();         Dictionary<string, object> dc = new Dictionary<string, object>();        for (int i = 0; i < tableNums; i++)        {          dc.Clear();           if (i == 0)          {            foreach (string key in expPairColumn.Keys)            {              string column = expPairColumn[key];              object value = null;              value = dt.Rows[i][column];              dc.Add(key, value);            }             ReplaceTableRang(wDoc.Tables[1], dc);            continue;          }           wDoc.Paragraphs.Last.Range.Paste();           foreach (string key in expPairColumn.Keys)          {            string column = expPairColumn[key];            object value = null;            value = dt.Rows[i][column];            dc.Add(key, value);          }           ReplaceTableRang(wDoc.Tables[1], dc);        }          return true;      }      catch (Exception ex)      {        DisposeWord();        MessageBox.Show("生成模版里的表格失敗。" + ex.Message);        return false;      }    }     private bool ReplaceTableRang(Word.Table table, Dictionary<string, object> dc)    {      try      {        object replaceArea = Word.WdReplace.wdReplaceAll;         foreach (string item in dc.Keys)        {          object replaceKey = item;          object replaceValue = dc[item];          table.Range.Find.Execute(ref replaceKey, ref missing, ref missing, ref missing,           ref missing, ref missing, ref missing, ref missing, ref missing,           ref replaceValue, ref replaceArea, ref missing, ref missing, ref missing,           ref missing);        }        return true;      }      catch (Exception ex)      {        DisposeWord();        MessageBox.Show(string.Format("{0}模版中沒有找到指定的要替換的表達式。{1}", tempFile, ex.Message));        return false;      }    }     private bool ReplaceAllRang(Dictionary<string, string> dc)    {      try      {        object replaceArea = Word.WdReplace.wdReplaceAll;         foreach (string item in dc.Keys)        {          object replaceKey = item;          object replaceValue = dc[item];          wApp.Selection.Find.Execute(ref replaceKey, ref missing, ref missing, ref missing,           ref missing, ref missing, ref missing, ref missing, ref missing,           ref replaceValue, ref replaceArea, ref missing, ref missing, ref missing,           ref missing);        }        return true;      }      catch (Exception ex)      {        MessageBox.Show(string.Format("{0}模版中沒有找到指定的要替換的表達式。{1}", tempFile, ex.Message));        return false;      }    }     private void DisposeWord()    {      object saveOption = Word.WdSaveOptions.wdSaveChanges;       wDoc.Close(ref saveOption, ref missing, ref missing);       saveOption = Word.WdSaveOptions.wdDoNotSaveChanges;       wApp.Quit(ref saveOption, ref missing, ref missing); //關閉Word進程    }  }}

3、效果

C#,Word模版,Word文件

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久一区| 国产人妖伪娘一区91| 98午夜经典影视| 亚洲免费一级电影| 日韩美女写真福利在线观看| 亚洲欧美日韩另类| 国产剧情久久久久久| 国产美女久久精品香蕉69| 国产网站欧美日韩免费精品在线观看| 91极品视频在线| 成人网在线观看| 91在线无精精品一区二区| 亚洲国产高清自拍| 亚洲精品视频免费在线观看| 久久综合免费视频| 欧美成人三级视频网站| 国产精品美女免费看| 日韩经典中文字幕| 色哟哟网站入口亚洲精品| 亚洲欧美国产另类| 精品国产一区二区三区久久狼黑人| 国产亚洲欧洲黄色| 精品福利在线视频| 91九色蝌蚪国产| 亚洲片在线观看| 欧美激情网站在线观看| 91丨九色丨国产在线| 亚洲国产精品99| xxx欧美精品| 欧美激情第99页| 91在线播放国产| 国产精品高潮呻吟久久av无限| 精品国内产的精品视频在线观看| 69视频在线免费观看| 国产一区二区三区免费视频| 亚洲国产精品va在看黑人| 96pao国产成视频永久免费| 日韩视频一区在线| 日韩电影第一页| 色樱桃影院亚洲精品影院| 伊人久久大香线蕉av一区二区| 国产欧美精品一区二区三区-老狼| 欧美一区第一页| 亚洲天堂成人在线视频| 欧美日韩高清在线观看| 欧美性69xxxx肥| 成人h视频在线观看播放| 日韩欧美国产黄色| 亚洲午夜精品视频| 国产亚洲欧洲黄色| 久久久久久久久久国产精品| 91在线观看免费高清完整版在线观看| 97在线视频国产| 91精品中国老女人| 亚洲视频在线观看| 国产精品亚洲自拍| 亚洲视屏在线播放| 国产美女久久久| 亚洲久久久久久久久久| 国产美女直播视频一区| 亚洲成人黄色网址| 欧美一级大片在线免费观看| 午夜精品一区二区三区在线播放| 成人伊人精品色xxxx视频| 亚洲第一色中文字幕| 国产精品草莓在线免费观看| 欧美日韩国产精品| 国产欧美日韩最新| 日韩欧美精品网址| 26uuu另类亚洲欧美日本一| 精品视频在线播放| 91精品啪aⅴ在线观看国产| 精品无人国产偷自产在线| 91亚洲精品久久久久久久久久久久| 欧美日韩成人在线播放| 一本久久综合亚洲鲁鲁| 日韩欧美国产成人| 成人动漫网站在线观看| 精品久久久久久久久中文字幕| 成人精品aaaa网站| 亚洲精品乱码久久久久久金桔影视| 欧美视频精品一区| 亚洲人成伊人成综合网久久久| 欧美日韩国产一区二区| 亚洲黄色有码视频| 欧美日韩中文字幕在线| 久久综合88中文色鬼| 久久人人爽亚洲精品天堂| 亚洲欧美一区二区精品久久久| 日韩精品在线第一页| 国色天香2019中文字幕在线观看| 波霸ol色综合久久| 中文字幕日韩电影| 日韩精品极品视频| 日韩欧美主播在线| 精品亚洲夜色av98在线观看| 亚洲天天在线日亚洲洲精| 亚洲成人精品av| 亚洲天堂男人天堂女人天堂| 亚洲电影免费在线观看| 亚洲精品日韩激情在线电影| 韩国福利视频一区| 97精品国产97久久久久久免费| 日韩欧美中文第一页| 欧美成人亚洲成人日韩成人| 国产欧美va欧美va香蕉在线| 亚洲欧美中文另类| 国产精品视频男人的天堂| 亚洲天堂av电影| 91色在线视频| 欧美激情亚洲精品| 久久电影一区二区| 超碰97人人做人人爱少妇| 亚洲91精品在线观看| 麻豆精品精华液| 中文字幕久久久av一区| 中文字幕av一区中文字幕天堂| 亚洲丝袜av一区| 最近日韩中文字幕中文| 日韩av片电影专区| 成人h片在线播放免费网站| 久久91亚洲精品中文字幕奶水| 国内精品久久久久影院优| 在线中文字幕日韩| 国产91精品视频在线观看| 日韩欧美a级成人黄色| 国产一级揄自揄精品视频| 国产精品久久久久久久久久99| 日韩美女免费线视频| 91久久久精品| 国产精品久久久久久久午夜| 欧美电影在线观看| 亚洲国产毛片完整版| 亚洲精品国产免费| 欧美香蕉大胸在线视频观看| 第一福利永久视频精品| 日韩高清免费观看| 热久久美女精品天天吊色| 欧日韩在线观看| 亚洲欧美综合图区| 欧美理论电影在线观看| 欧美国产中文字幕| 国产在线不卡精品| 国产成人精品免高潮费视频| 欧美国产日韩一区二区三区| 91免费看视频.| 日本成人在线视频网址| 清纯唯美亚洲激情| 国产69久久精品成人看| 欧美日韩国产一中文字不卡| 日韩欧美亚洲综合| 91免费在线视频| 日韩在线视频网| 在线精品高清中文字幕| 欧美专区第一页| 久久手机免费视频| 久久人人爽国产| 久久国产视频网站| 成人久久久久久| 91在线观看免费高清完整版在线观看| 精品久久香蕉国产线看观看亚洲| 国产欧美va欧美va香蕉在线| 日韩亚洲欧美中文在线| 国产一区玩具在线观看|