用.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-12-05 16:24  远方  阅读(177)  评论(0编辑  收藏  举报