具体代码如下:
object fileName = "c:\\model.doc";
object readOnly = false;
object isVisible = true;
object missing = System.Reflection.Missing.Value;
Word.ApplicationClass oWordApp = new Word.ApplicationClass();

oWordApp.set_Visible (true); Word.Document oWordDoc = oWordApp.get_Documents ().Open(ref fileName, 
ref missing,ref readOnly, 
ref missing, ref missing, ref missing, 
ref missing, ref missing, ref missing, 
ref missing, ref missing, ref isVisible, 
ref missing,ref missing,ref missing); 出现错误信息: 未处理的“System.InvalidCastException”类型的异常出现在 Outlookbar.exe 中。其他信息: 接口 Word._Application 的 QueryInterface 失败。

解决方案 »

  1.   

    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+"\\SunShine【"+GetRandomString()+"】.doc"; 
    Object Nothing=System.Reflection.Missing.Value; 
    myWordDoc=myWordApp.Documents.Add(ref Nothing,ref Nothing,ref Nothing,ref Nothing); 
        
    #region 将数据库中读取得数据写入到word文件中  strContent="SunShine\n\n\r"; 
    WriteFile(strContent); 
        
    strContent="SunShine is HuiChow"; 
    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; 


    }
      

  2.   

    结果生成一个SunShine【20041026124871873080】的doc文档,即SunShine【"+GetRandomString()+"】.doc,并在文档中写入“SunShine is HuiChow”