用.net操作word

要操作Word,我们就需要Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB),通常安装了Office Word后,你就可以在office安装目录的Office10文件夹下面找到这个文件,当我们将这个文件引入到项目后,我们就可以在源码中使用各种操作函数来操作Word。具体做法是打开菜单栏中的项目>添加引用>浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将 库文件转化为DLL组件,这样我们只要在源码中创建该组件对象即可达到操作Word的目的!
     在CS代码文件中对命名空间的应用,如:using Word;范例如下:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using Word;
namespace ExamSecure
{
 /// 
 /// ItemToDoc 的摘要说明。
 /// 
 public class ItemToDoc : System.Windows.Forms.Form
 {
  object strFileName;
  Object Nothing;
  Word.ApplicationClass myWordApp=new Word.ApplicationClass();
  Word.Document myWordDoc;
  string strContent="";
  private System.ComponentModel.Container components = null;
  public ItemToDoc()
  {
   //
   // Windows 窗体设计器支持所必需的
   //
   InitializeComponent();
   //
   // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
   //
  }
  [STAThread]
  static void Main() 
  {
   System.Windows.Forms.Application.Run(new ItemToDoc());
  }
  /// 
  /// 清理所有正在使用的资源。
  /// 
  protected override void Dispose( bool disposing )
  {
   if( disposing )
   {
    if(components != null)
    {
     components.Dispose();
    }
   }
   base.Dispose( disposing );
  }
  #region Windows Form Designer generated code
  /// 
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// 
  private void InitializeComponent()
  {
   // 
   // ItemToDoc
   // 
   this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
   this.ClientSize = new System.Drawing.Size(292, 273);
   this.Name = "ItemToDoc";
   this.Text = "ItemToDoc";
   this.Load += new System.EventHandler(this.ItemToDoc_Load);
}
  #endregion
  private void ItemToDoc_Load(object sender, System.EventArgs e)
  {
   WriteFile();
  }
  private void WriteFile()
  {
  
   strFileName=System.Windows.Forms.Application.StartupPath+"\\试题库【"+GetRandomString()+"】.doc";
   Object Nothing=System.Reflection.Missing.Value;
   myWordDoc=myWordApp.Documents.Add(ref Nothing,ref Nothing,ref Nothing,ref Nothing);
   
   #region 将数据库中读取得数据写入到word文件中
   strContent="试题库\n\n\r";
   WriteFile(strContent);
   
   strContent="试题库";
   WriteFile(strContent);

   #endregion 
   
   //将WordDoc文档对象的内容保存为DOC文档
   myWordDoc.SaveAs(ref strFileName,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文档对象
   myWordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
   //关闭WordApp组件对象
   myWordApp.Quit(ref Nothing, ref Nothing, ref Nothing);
  }
  /// 
  /// 获取一个随即字符串
  /// 
  /// 
  private string GetRandomString()
  {
   DateTime iNow=DateTime.Now;
   string strDate=iNow.ToString("yyyyMMddHHmmffff");
   
   Random ran=new Random();
   int iRan=Convert.ToInt32(10000*ran.NextDouble());
   string strRan=iRan.ToString();
   //位数不足则补0   
   int iRanlen=strRan.Length;
   for(int i=0;i<4-iRanlen;i++)
   {
    strRan="0"+strRan;
   }
   return strDate+strRan;
  }
/// 
  /// 将字符串写入到Word文件中
  /// 
  /// 要写入的字符串
  private void WriteFile(string str)
  {
   myWordDoc.Paragraphs.Last.Range.Text=str;
  }
 }
}
posted @ 2006-04-24 17:16  大牛博客  阅读(1604)  评论(0编辑  收藏  举报