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);
        }
时间: 2024-10-05 23:51:16

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

[转]C#操作word模板插入文字、图片及表格详细步骤

c#操作word模板插入文字.图片及表格 1.建立word模板文件 person.dot用书签 标示相关字段的填充位置 2.建立web应用程序 加入Microsoft.Office.Interop.Word引用具体添加引用请参看http://www.microsoft.com/china/msdn/library/office/office/OfficePrIntopAssFAQ.mspx?mfr=true 3.相关示例代码 protected void CreateReport_Click(o

C#操作Word的+ CKEditor 輸出成Word文件(包含圖案上傳)

C#操作Word 参考博文: C#操作word类文件 https://www.cnblogs.com/walking/p/3571068.html C#中的Office操作专栏(21) http://blog.csdn.net/lzhui1987/article/category/6511234 c# 操作Word总结 http://www.cnblogs.com/eye-like/p/4121219.html C#操作WORD公用类 http://blog.csdn.net/liu793185

C++ 文件的简单操作

=================================================================== 编写程序时,很多时候都要对文件进行操作,比如从文件中读取数据,通过程序将一些数据保存到文件中等等.. 以下是c++对文件的一些简单操作. =================================================================== 一.文件输出 要将程序中的数据输出到文件中,一般需要以下5个步骤: ① 包含fstream

织梦cms模板文件不存在,无法解析文档

首先说明,我出现这个问题,并不是模板真的不存在,相信很多朋友也会很郁闷,搞得一点 自信都没有了. 我来说一下如何解决这个问题. 简单来说, 模板文件不存在,无法解析文档 这个问题可能是由于系统安装在二级目录,在填 写二级目录里出现错误,找不到模板. 解决办法是:到系统设置-核心设置- DedeCms 安装目录 设置正确的路径,如果是根目录 安装,则不需要填写任何内容.根目录安装切记留为空. 然后呢,比较有用的办法就是,更新系统缓存,乱七八糟的全更新一下,一般的问题全能搞 定. 如果不行,那你的问

discuz默认模板文件结构详解-模板文件夹介绍

| — template — default   系统内置风格模板(默认风格)| — template — default  – discuz_style_default.xml  风格安装文件,可用风格导出功能创建| — template — default  – preview.jpg  预览图| — template — default  – common 风格中的公共包含文件,内含css.htm模板文件| — template — default  – common  –  block_

XDocReport 的简单使用 操作word 替换变量

XDocReport 主要是操作word,在word模版中定义变量并替换变量.(在word中还可替换动态图片,可进行循环.判断操作,可定义指令扩展程序,可转成pdf文件 等) 1,模版变量定义. 新建word,Ctrl + F9   编辑域   选择MergeField  编辑域代码 如图: 2,代码 /** * 根据模板导出word文件 * * @param reportData ReportData对象为数据对象,里面存储Map 数据 * @param templateName 模板文件路径

利用模板导出文件(二)之jacob利用word模板导出word文件(Java2word)

先下载jacob.jar包. 解压后将jacob.dll放到windows/system32以下或\jre\bin以下. 将jacob.jar增加项目. 这样项目的环境基本上搭建完毕,接下来就是书写相关的代码: /** * 传入数据为HashMap对象,对象中的Key代表word模板中要替换的字段.Value代表用来替换的值. * word模板中全部要替换的字段(即HashMap中的Key)以特殊字符开头和结尾. * 如:$code$.$date$--.以免执行错误的替换. * 全部要替换为图片

在Java中如何操作word, excel, pdf文件

java操作word,excel,pdf 在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下java对word.excel.pdf文件的读取.本篇博客只是讲解简单应用.如果想深入了解原理.请读者自行研究一些相关源码. 首先我们来认识一下读取相关文档的jar包: 1. 引用POI包读取word文档内容 poi.jar 下载地址 http://apache.freelamp.com/poi/release/bin/poi-

Asp.net操作Word文档,原来这么简单啊!

引用Word对象库文件  具体做法是打开菜单栏中的项目>添加引用>浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将库文件转化为DLL组件,这样我们只要在源码中创建该组件对象即可达到操作Word的目的! 如图 这会自动在你的应用程序文件夹中放置一个程序集(assembly)将COM接口邦定到Word. 上传并存储word文件 上传文件时首先通过上传控件找到所需上传的文件,然后获取文件的大小,最后以流的形式写入数据库 具体代码为 C#