也谈关于WORD的版本问题

runsoft 2004-10-25 03:52:55
我使用的是office的xp版本,在加入引用msword.olb之后,操作word.
在使用的过程中,不知道为什么代码和CSDN和csharp的帮助中代码出入很大,比如
object fileName = "c:\\database\\test.doc";
object readOnly = false;
object isVisible = true;
object missing = System.Reflection.Missing.Value;
Word.ApplicationClass oWordApp = new Word.ApplicationClass();

Word.Document oWordDoc = oWordApp.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);
其中我编写的代码中oWordApp没有Documents的属性.到是有一个get_Documents的方法.但是修改之后运行时候出现如下错误:
其他信息: 接口 Word._Application 的 QueryInterface 失败。
请高手指点.
...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cctaiyang 2004-10-26
  • 打赏
  • 举报
回复
结果生成一个SunShine【20041026124871873080】的doc文档,即SunShine【"+GetRandomString()+"】.doc,并在文档中写入“SunShine is HuiChow”
cctaiyang 2004-10-26
  • 打赏
  • 举报
回复
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;
}
}
}
runsoft 2004-10-25
  • 打赏
  • 举报
回复
具体代码如下:
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 失败。

111,115

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧