Word For Application By C#

  1  using System;
  2  using System.Data;
  3  using System.Configuration;
  4  using System.Web;
  5  using System.Web.Security;
  6  using System.Web.UI;
  7  using System.Web.UI.WebControls;
  8  using System.Web.UI.WebControls.WebParts;
  9  using System.Web.UI.HtmlControls;
 10  using Microsoft.Office;
 11  using Microsoft.Office.Core;
 12  using Microsoft.Office.Interop;
 13  using Microsoft.Office.Interop.Word;
 14 
 15  public  partial  class _Default : System.Web.UI.Page
 16 {
 17      protected  void Page_Load( object sender, EventArgs e)
 18     {
 19 
 20     }
 21      protected  void Button1_Click( object sender, EventArgs e)
 22     {
 23          string[] demostr = {  " 测试数据1 "" afsdasd "" fasdfdf "" sdfasdfee33 "" asdfddeegadg "" fee都受到 " };
 24          string url =  " http:// " +  this.Request.Url.Authority +  " /demo/全国工业产品生产许可证申请登记表.doc ";
 25          string urlreadword =  " /demo/Officebak/ " + SetDocumentBookmarkData(url, demostr, Guid.NewGuid().ToString());
 26         Page.RegisterStartupScript( " msg "" <script>window.location=' " + urlreadword +  " ';</script> ");
 27     }
 28 
 29      // 设定标签的数据   
 30       public  string SetDocumentBookmarkData( string FileName,  string[] demostr,  string caseid)
 31     {
 32          // 打开文档   
 33          Microsoft.Office.Interop.Word.Document wDoc =  null;
 34         Microsoft.Office.Interop.Word.Application wApp =  null;
 35          this.OpenWordDoc(FileName,  ref wDoc,  ref wApp);
 36          object oEndOfDoc =  " \\endofdoc ";
 37          object missing = System.Reflection.Missing.Value;
 38          // 设定标签数据   
 39          System.Collections.IEnumerator enu = wApp.ActiveDocument.Bookmarks.GetEnumerator();
 40 
 41          string[] strbook =  new  string[demostr.Length];
 42          int i =  0;
 43         Microsoft.Office.Interop.Word.Bookmark bk =  null;
 44          while (enu.MoveNext())
 45         {
 46             bk = (Microsoft.Office.Interop.Word.Bookmark)enu.Current;
 47 
 48              if (bk.Name.ToString().Trim() !=  " Table ")
 49             {
 50                 strbook[i] = bk.Name.ToString();
 51                 i++;
 52             }
 53         }
 54 
 55          object tempobject =  null;
 56          int length =  0;
 57          for (i =  0; i < strbook.Length; i++)
 58         {
 59             tempobject = strbook[i].ToString();
 60              if (wApp.ActiveDocument.Bookmarks.Exists(strbook[i].ToString()))
 61             {
 62                 wApp.ActiveDocument.Bookmarks.get_Item( ref tempobject).Select();
 63                 wApp.Selection.Text = demostr[i].ToString();
 64             }
 65 
 66         }
 67         Microsoft.Office.Interop.Word.Table wordTablexSoft = wDoc.Tables[ 1];
 68         InsertTabletoData(wordTablexSoft,  ref wDoc,  ref wApp);
 69 
 70          // 收尾工作   
 71           object o =  null;
 72 
 73          // string guid = System.Guid.NewGuid().ToString();
 74           string guid = caseid;
 75          object sFileName = Server.MapPath( " /demo/Officebak/ " + guid +  " .doc ");
 76          if (wDoc.SaveFormat == ( int)Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument)
 77         {
 78             wDoc.Application.ActiveDocument.SaveAs( ref sFileName,  ref missing,  ref missing,
 79              ref missing,  ref missing,  ref missing,
 80              ref missing,  ref missing,
 81              ref missing,  ref missing,
 82              ref missing,  ref missing,  ref missing,
 83              ref missing,  ref missing,  ref missing);
 84         }
 85 
 86         wDoc.Close( ref missing,  ref missing,  ref missing);
 87         wApp.Quit( ref missing,  ref missing,  ref missing);
 88 
 89          if (wDoc !=  null)
 90         {
 91             System.Runtime.InteropServices.Marshal.ReleaseComObject(wDoc);
 92             wDoc =  null;
 93         }
 94 
 95          if (wApp !=  null)
 96         {
 97             System.Runtime.InteropServices.Marshal.ReleaseComObject(wApp);
 98             wApp =  null;
 99         }
100 
101         GC.Collect();
102 
103          return guid +  " .doc ";
104     }
105 
106 
107      #region 打开word模板和word文件
108 
109      public  static  void OpenWordDot()
110     {
111          // 不建议用非标准doc 此处方法 略
112      }
113 
114      private  void OpenWordDoc( string FileName,  ref Microsoft.Office.Interop.Word.Document wDoc,  ref  Microsoft.Office.Interop.Word.Application WApp)
115     {
116          if (FileName ==  ""return;
117         Microsoft.Office.Interop.Word.Document thisDocument =  null;
118         Microsoft.Office.Interop.Word.FormFields formFields =  null;
119         Microsoft.Office.Interop.Word.Application thisApplication =  new Microsoft.Office.Interop.Word.ApplicationClass();
120         thisApplication.Visible =  true;
121         thisApplication.Caption =  "";
122         thisApplication.Options.CheckSpellingAsYouType =  false;
123         thisApplication.Options.CheckGrammarAsYouType =  false;
124 
125         Object filename = FileName;
126         Object ConfirmConversions =  false;
127         Object ReadOnly =  true;
128         Object AddToRecentFiles =  false;
129 
130         Object PasswordDocument = System.Type.Missing;
131         Object PasswordTemplate = System.Type.Missing;
132         Object Revert = System.Type.Missing;
133         Object WritePasswordDocument = System.Type.Missing;
134         Object WritePasswordTemplate = System.Type.Missing;
135         Object Format = System.Type.Missing;
136         Object Encoding = System.Type.Missing;
137         Object Visible = System.Type.Missing;
138         Object OpenAndRepair = System.Type.Missing;
139         Object DocumentDirection = System.Type.Missing;
140         Object NoEncodingDialog = System.Type.Missing;
141         Object XMLTransform = System.Type.Missing;
142 
143          try
144         {
145             Microsoft.Office.Interop.Word.Document wordDoc =
146              thisApplication.Documents.Open( ref filename,  ref ConfirmConversions,
147               ref ReadOnly,  ref AddToRecentFiles,  ref PasswordDocument,  ref PasswordTemplate,
148               ref Revert,  ref WritePasswordDocument,  ref WritePasswordTemplate,  ref Format,
149               ref Encoding,  ref Visible,  ref OpenAndRepair,  ref DocumentDirection,
150               ref NoEncodingDialog,  ref XMLTransform);
151 
152             thisDocument = wordDoc;
153             wDoc = wordDoc;
154             WApp = thisApplication;
155             formFields = wordDoc.FormFields;
156         }
157          catch (Exception ex)
158         {
159 
160         }
161     }
162 
163      #endregion
164      ///   <summary>
165       ///  在objtbale 标签上新增表
166       ///   </summary>
167       ///   <param name="objTable"></param>
168       ///   <param name="wDoc"></param>
169       ///   <param name="WApp"></param>
170       ///   <returns></returns>
171       private  bool InsertTabletoData(Microsoft.Office.Interop.Word.Table wordTable,  ref Microsoft.Office.Interop.Word.Document wDoc,  ref  Microsoft.Office.Interop.Word.Application WApp)
172     {
173 
174 
175          object Rownum =  5;
176          object Columnnum =  1;
177         wordTable.Cell( 182).Split( ref Rownum,  ref  Columnnum);
178         wordTable.Cell( 183).Split( ref Rownum,  ref  Columnnum);
179         wordTable.Cell( 184).Split( ref Rownum,  ref  Columnnum);
180         wordTable.Cell( 185).Split( ref Rownum,  ref  Columnnum);
181          for ( int i =  0; i <  5; i++)
182         {
183             wordTable.Cell( 18 + i,  2).Range.Text =  " 测试1列 " + i +  " ";
184             wordTable.Cell( 18 + i,  3).Range.Text =  " 测试2列 " + i +  " ";
185             wordTable.Cell( 18 + i,  4).Range.Text =  " 测试3列 " + i +  " ";
186             wordTable.Cell( 18 + i,  5).Range.Text =  " 测试4列 " + i +  " ";
187         }
188 
189          return  true;
190     }
191      ///   <summary>
192       ///  在objtbale 标签上新增表
193       ///   </summary>
194       ///   <param name="objTable"></param>
195       ///   <param name="wDoc"></param>
196       ///   <param name="WApp"></param>
197       ///   <returns></returns>
198       private  bool InsertTabletoBookmark( string objTable,  ref Microsoft.Office.Interop.Word.Document wDoc,  ref  Microsoft.Office.Interop.Word.Application WApp)
199     {
200          object oEndOfDoc =  " \\endofdoc ";
201          object missing = System.Reflection.Missing.Value;
202 
203          object objBookmark = objTable;
204 
205         WApp.ActiveDocument.Bookmarks.get_Item( ref objBookmark).Select();
206 
207         Microsoft.Office.Interop.Word.Table table = wDoc.Tables.Add(WApp.Selection.Range,  34ref missing,  ref missing);
208         table.Cell( 11).Range.Text =  " 表: " + WApp.ActiveDocument.Bookmarks.get_Item( ref objBookmark).Range.Tables[ 1].Rows.Count;
209 
210          return  true;
211     }
212 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值