ASP.NET操作Word文档一直是一个大家比较关心的话题,其实在ASP.NET里操作Word文档一点也不难,大家只需按本文提示,就能轻轻松松操作Word文档!一、准备工作 首先请确认服务端已经安装了Office Word(以下将以Office XP为例),操作系统为win2000或XP,并且已配置好.NET的运行环境及安装VS.NET C#开发环境后,我们就可以打开VS.NET,并新建一个Visual C#项目>ASP.NET Web应用程序,位置为“http://localhost/word”。(如图一)二、引用Word对象库文件 要操作Word,我们就需要Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB),通常安装了Office Word后,你就可以在office安装目录的Office10文件夹下面找到这个文件,当我们将这个文件引入到项目后,我们就可以在源码中使用各种操作函数来操作Word。具体做法是打开菜单栏中的项目>添加引用>浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将库文件转化为DLL组件,这样我们只要在源码中创建该组件对象即可达到操作Word的目的!三、Webform1.aspx.cs代码 完成添加引用后,MSWORD.OLB已经转化为相关DLL文件并放置于项目的BIN目录下了,这样我们只需在源码中创建该对象,并使用word库文件内置的操作函数即可轻松实现操作Word,Webform1.aspx.cs源码如下:
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace word ... {/**//// <summary>/// Webform1 的摘要说明。/// </summary>public class Webform1 : System.Web.UI.Page...{protected System.Web.UI.WebControls.TextBox SaveAs;protected System.Web.UI.WebControls.Button Button;protected System.Web.UI.WebControls.Label Label2;protected System.Web.UI.WebControls.Label Label1;protected System.Web.UI.WebControls.Label result;protected System.Web.UI.WebControls.TextBox wordText;Web form Designer generated code#region Web form Designer generated codeoverride protected void OnInit(EventArgs e)...{//// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}/**//// <summary>/// 设计器支持所需的方法 - 不要使用代码编辑器修改/// 此方法的内容。/// </summary>private void InitializeComponent()...{ this.Load += new System.EventHandler(this.Page_Load);}#endregionpublic void Button_Click(object sender, System.EventArgs e)...{Object Nothing=System.Reflection.Missing.value;//取得Word文件保存路径object filename=@SaveAs.Text;//创建一个名为WordApp的组件对象Word.Application WordApp=new Word.ApplicationClass();//创建一个名为WordDoc的文档对象Word.Document WordDoc=WordApp.Documents.Add(ref Nothing,ref Nothing,ref Nothing,ref Nothing);//增加一表格Word.Table table=WordDoc.Tables.Add(WordApp.Selection.Range,1,1,ref Nothing,ref Nothing);//在表格第一单元格中添加自定义的文字内容table.Cell(1,1).Range.Text=wordText.Text;//在文档空白地方添加文字内容WordDoc.Paragraphs.Last.Range.Text="Wellcome To Aspxcn.Com";//将WordDoc文档对象的内容保存为DOC文档WordDoc.SaveAs(ref filename,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing);//关闭WordDoc文档对象WordDoc.Close(ref Nothing, ref Nothing, ref Nothing);//关闭WordApp组件对象WordApp.Quit(ref Nothing, ref Nothing, ref Nothing);//返回结果result.Text="文档路径:<a href='"+SaveAs.Text+"'>"+SaveAs.Text+"</a>(点击链接查看)<br>生成结果:成功!";}private void Page_Load(object sender, System.EventArgs e)...{}}}
四、Webform1.aspx代码
完成CS源码后,我们就可以设计Webform页面了,完整的代码如下:
<% @ Page language = " c# " Codebehind = " Webform1.aspx.cs " AutoEventWireup = " false " Inherits = " word.Webform1 " %> <! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.0 Transitional//EN " > < HTML > < HEAD > < title > 基于Webforms的操作Word </ title > < meta name = " GENERATOR " Content = " Microsoft Visual Studio 7.0 " > < meta name = " CODE_LANGUAGE " Content = " C# " > < meta name = " vs_defaultClientScript " content = " javascript " > < meta name = " vs_targetSchema " content = " http://schemas.microsoft.com/intellisense/ie5 " > </ HEAD > < body ms_positioning = " GridLayout " > < form id = " form1 " method = " post " runat = " server " > < FONT face = " 宋体 " > < asp:TextBox id = " wordText " style = " Z-INDEX: 101; LEFT: 144px; POSITION: absolute; TOP: 129px " runat = " server " Height = " 190px " Width = " 360px " TextMode = " MultiLine " ></ asp:TextBox > < asp:TextBox id = " SaveAs " style = " Z-INDEX: 102; LEFT: 143px; POSITION: absolute; TOP: 80px " runat = " server " Width = " 360px " > C:myword.doc </ asp:TextBox > < asp:Button id = " Button " style = " Z-INDEX: 103; LEFT: 237px; POSITION: absolute; TOP: 340px " runat = " server " Width = " 98px " on onClick = " Button_Click " Text = " 生成Word文档 " ></ asp:Button > < INPUT style = " Z-INDEX: 104; LEFT: 361px; WIDTH: 49px; POSITION: absolute; TOP: 340px; HEIGHT: 24px " type = " reset " value = " 重填 " size = " 20 " ></ FONT > < FONT face = " 宋体 " > 基于Webforms的操作Word(小宝.NET) </ FONT > < asp:Label id = " Label1 " style = " Z-INDEX: 105; LEFT: 143px; POSITION: absolute; TOP: 54px " runat = " server " Width = " 187px " Height = " 18px " > Word文件保存路径: </ asp:Label > < asp:Label id = " Label2 " style = " Z-INDEX: 106; LEFT: 142px; POSITION: absolute; TOP: 107px " runat = " server " Width = " 159px " Height = " 12px " > Word文件内容: </ asp:Label > < asp:Label id = " result " style = " Z-INDEX: 107; LEFT: 148px; POSITION: absolute; TOP: 387px " runat = " server " Width = " 352px " Height = " 18px " ForeColor = " Red " ></ asp:Label > </ form > </ body > </ HTML >