Csharp 简单操作Word模板文件

原文:Csharp 简单操作Word模板文件

1.创建一个模板的Word文档  Doc1.dot 内容为:

To: <Name>

Sub:<Subject>

 

Website is ok geovindu 涂聚文好样的 work.

CEo

                         <Datetime>

Thanks.

 

2.程序操作代码为:

       /// <summary>
        /// 簡單操作Word模板文件
        /// 塗聚文 2011-11-03
        /// 缔友计算机信息技术有限公司
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            DateTime startTime = DateTime.Now;
            DateTime endTime = DateTime.Now;
            System.Random srd = new Random();
            int srdName = srd.Next(1000);
            string newfile = path + DateTime.Now.ToString("yyyyMMddhhmmss") + srdName.ToString()+".doc"; //新文件名
            try
            {

                startTime = DateTime.Now;
                //killprocess("winword");
                //  復制模板文件
                File.Copy(path + fileName, newfile, true);//fileName = "Doc1.doc";//模板文件

                object missing = Missing.Value;

                Word.Application wordApp = new Word.ApplicationClass();
                endTime = DateTime.Now;

                Word.Document aDoc = null;

                object file = newfile;//新文件替換
                if (File.Exists((string)file))//判斷新文件存在否
                {
                    object readOnly = false;
                    object isVisible = false;
                    wordApp.Visible = false;
                    aDoc = wordApp.Documents.Open(ref file, ref missing,
                    ref readOnly, ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing, ref missing,
                    ref missing, ref isVisible, ref missing, ref missing,
                    ref missing, ref missing);
                    aDoc.Activate();
                    this.FindAndReplace(wordApp, "<Datetime>", this.dateTimePicker1.Text);
                    this.FindAndReplace(wordApp, "<Name>", this.textBoxName.Text.Trim());
                    this.FindAndReplace(wordApp, "<Subject>",this.textBoxSubject.Text.Trim());
                    aDoc.Save();
                }
                else
                    MessageBox.Show("File does not exist.","No File", MessageBoxButtons.OK,MessageBoxIcon.Information);
               // killprocess("winword");
            }
            catch (Exception)
            {
                MessageBox.Show("Error in process.", "Internal Error",
                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                killprocess(startTime, endTime, "winword");
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
        }
        /// <summary>
        /// 關閉進程 塗聚文 2011-11-03
        /// </summary>
        /// <param name="pro"></param>
        public void killprocess(DateTime start, DateTime end, string ProcessName)
        {
            //foreach (Process p in Process.GetProcessesByName(pro))
            //{
            //    if (!p.HasExited)
            //    {
            //        p.Kill();
            //    }
            //}
                Process[] myProcesses;
                DateTime ProStartTime;
                myProcesses = Process.GetProcessesByName(ProcessName);

                //因为暂时没有想到得到Excel进程ID的方法,所以只能判断进程启动时间
                foreach (Process myProcess in myProcesses)
                {
                    ProStartTime = myProcess.StartTime;
                    //myProcess.Id

                    if (start <= ProStartTime && ProStartTime <= end)
                    {
                        myProcess.Kill();
                    }
                }

        }
        /// <summary>
        /// 找查替換內容 塗聚文 2011-11-03
        /// </summary>
        /// <param name="wordApp"></param>
        /// <param name="findText"></param>
        /// <param name="replaceText"></param>
        private void FindAndReplace(Word.Application wordApp,object findText, object replaceText)
        {
            object matchCase = true;
            object matchWholeWord = true;
            object matchWildCards = false;
            object matchSoundsLike = false;
            object matchAllWordForms = false;
            object forward = true;
            object format = false;
            object matchKashida = false;
            object matchDiacritics = false;
            object matchAlefHamza = false;
            object matchControl = false;
            object read_only = false;
            object visible = true;
            object replace = 2;
            object wrap = 1;
            wordApp.Selection.Find.Execute(ref findText, ref matchCase,
                ref matchWholeWord, ref matchWildCards, ref matchSoundsLike,
                ref matchAllWordForms, ref forward, ref wrap, ref format,
                ref replaceText, ref replace, ref matchKashida,
                        ref matchDiacritics,
                ref matchAlefHamza, ref matchControl);
        }

 

时间: 2025-01-20 13:53:52

Csharp 简单操作Word模板文件的相关文章

java简单操作word实例_java

本文为大家分享了java简单操作word例子,供大家参考,具体内容如下 package apache.poi; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; impor

快速找Word模板文件Normal.dot的方法

你在某一台计算机中长时间使用Word,会在默认的模板(Normal.dot)中保存了大量的自定义样式.快 捷键.宏等.这时如果换到另一台计算机使用Word,可以把这个模板文件拷到新机器里面去,就能让Word 符合自己的操作习惯了. 这就碰到问题了,这个Normal.dot模板文件到底在哪里呢?不同版本的Windows操作系统(如Windows 98和Windows XP),这个文件的位置也会有所不同.不用着急,使用下面介绍的办法,可以很快地就把它 揪出来. 以Word 2003中文版为例,具体操

怎么快速找到Word模板文件Normal.dot

你在某一台计算机中长时间使用Word,会在默认的模板(Normal.dot)中保存了大量的自定义样式.快捷键.宏等.这时如果换到另一台计算机使用Word,可以把这个模板文件拷到新机器里面去,就能让Word符合自己的操作习惯了. 这就碰到问题了,这个Normal.dot模板文件到底在哪里呢?不同版本的Windows操作系统(如Windows XP),这个文件的位置也会有所不同.不用着急,使用下面介绍的办法,可以很快地就把它揪出来. 以Word 2003中文版为例,具体操作步骤如下: 1.启动Wor

根据标准word模板生成word文档类库(开源)

前言                                                                                                                              最近因项目需要要自定义标准word模板,并以编码方式操作word模板.填充数据和生成word文档,于是自己写了条小"内裤"来实现这个功能.该"内 裤"只针对ooxml格式的word文档,当然大家可以用Aspose.

用好Word模板 提高Word操作效率

巧妙地利用Office模板可以大大方便我们的操作.Word中更是添加了众多好用的模板文件,但是你知道它们到底怎样用吗?如何才能够让它们用得更好? Word模板的分类及分布 Word中的模板分为两类:一是系统向导和模板,第二类为用户自定义模板.而Word的系统向导和模板默认安装在C:\Program Files\Microsoft Office\Templates\2052文件夹中,其扩展名是WIZ(向导)和DOT(模板). 而用户自定义模板存放的位置会由于Windows版本的不同而不一样:对于W

Word模板路径在哪?word的模板路径在哪里

很多人想要对word模板进行编辑或删除等,但是找不到word模板路径的位置怎么办?别急,小编在这里就来告诉大家word模板路径在哪里. Word模板路径在哪?word的模板路径在哪里 1.打开word文档,点击左上角的Office按钮,然后选择word选项. 2.在word选项中选择高级,然后在右侧拖动滑块找到文件位置. 3.在文件位置中双击word用户模板,打开修改位置. 4.复制对话框中的word模板文件路径"C:UsersacerAppDataRoamingMicrosoftTemplat

Word模板路径在哪?

  很多人想要对word模板进行编辑或删除等,但是找不到word模板路径的位置怎么办?别急,小编在这里就来告诉大家word模板路径在哪里. Word模板路径在哪?word的模板路径在哪里 1.打开word文档,点击左上角的Office按钮,然后选择word选项. 2.在word选项中选择高级,然后在右侧拖动滑块找到文件位置. 3.在文件位置中双击word用户模板,打开修改位置. 4.复制对话框中的word模板文件路径"C:UsersacerAppDataRoamingMicrosoftTempl

asp.net内容导入word文档与word模板

asp教程.net内容导入word文档与word模板中,第一款实例 就是一款完整的把asp.net教程的内容直接导入到word模板文件中,第二款是把内容导入word文档中. using system; using system.web.security; using microsoft.office.interop.word; using system.io; /// <summary> /// word 的摘要说明 /// </summary> public class word

OpenXML 替换word模板中的标签

最近的项目(MOSS项目)需要,用户需要根据word模板生成相关的word文档,具体需求是根据infopath 表单中的内容和相关的模板生成一份word文档 着手做之前想想要是用word api操作的话,后台进程,多用户并发操作等等问题 看来还是用openxml来操作比较好,于是找了找资料,实现了这小小的功能 现在把代码贴出来跟大家分享下 使用openxml技术时,首先需要引用windowsbase.dll 部分常量 const string documentRelationshipType =