C#操作Word模板并且修改书签

来源:互联网 发布:大月薰 知乎 编辑:程序博客网 时间:2024/06/05 18:22
原文地址:C#操作Word模板并且修改书签作者:大坏蛋

//生成WORD程序对象和WORD文档对象

           Microsoft.Office.Interop.Word.Application appWord = new Microsoft.Office.Interop.Word.Application();

           Microsoft.Office.Interop.Word.Document doc = new Document();

           object oMissing =System.Reflection.Missing.Value;

           //打开模板文档,并指定doc的文档类型

 

           object objTemplate=System.Windows.Forms.Application.StartupPath + @"UploadFilestz103.doc";

           //路径一定要正确

            //HttpContext.Current.Server.MapPath(@"f:tz103.doc");

           object objDocType = WdDocumentType.wdTypeDocument;

           object objfalse = false;

           object objtrue = true;

           doc = (Document)appWord.Documents.Add(ref objTemplate, ref objfalse, ref objDocType, ref objtrue);

           //获取模板中所有的书签

           Bookmarks odf =doc.Bookmarks;

 

           string[] testTableremarks = {"offName_doc", "mineName_doc", "accident_doc", "pns_doc" };

           string[] testTablevalues = {"Word标题", "公司名称", "高海敬Word文档的内容Word文档的内容Word文档的内容Word文档的内容Word文档的内容Word文档的内容Word文档的内容Word文档的内容Word文档的内容", "处理意见" };

 

           //循环所有的书签,并给书签赋值

           for (int oIndex = 0; oIndex <testTableremarks.Length; oIndex++)

           {

               object obDD_Name = "";

               obDD_Name = testTableremarks[oIndex];

               //doc.Bookmarks.get_Item(refobDD_Name).Range.Text =p_TestReportTable.Rows[0][testTablevalues[oIndex]].ToString();//此处Range也是WORD中很重要的一个对象,就是当前操作参数所在的区域

               doc.Bookmarks.get_Item(refobDD_Name).Range.Text = testTablevalues[oIndex];

           }

 

           //第四步生成word,将当前的文档对象另存为指定的路径,然后关闭doc对象。关闭应用程序

           object filename = "f:\" + DateTime.Now.ToShortDateString() +".doc";//HttpContext.Current.Server.MapPath("f:\") +"Testing_" + DateTime.Now.ToShortDateString() +".doc";

           object miss =System.Reflection.Missing.Value;

           doc.SaveAs(ref filename,ref miss, ref miss, refmiss, ref miss, ref miss,

               refmiss, ref miss, ref miss, refmiss, ref miss, ref miss, refmiss, ref miss, ref miss, refmiss);

           object missingValue = Type.Missing;

           object doNotSaveChanges =WdSaveOptions.wdDoNotSaveChanges;

           doc.Close(ref doNotSaveChanges,ref missingValue, ref missingValue);

           appWord.Application.Quit(ref miss,ref miss, ref miss);

           doc = null;

           appWord = null;

          //MessageBox.Show("生成成功!");

           System.Diagnostics.Process.Start(filename.ToString());//打开文档
0 0
原创粉丝点击