要操作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; } } }
|