编写第一个操作WORD文档的应用程序

一、相关软件的安装及编写前准备

    安装方法1 按照MSDN上介绍的方法安装。如下图

 

 

    第一步:安装Visual Studio Tools for Office,这个软件在安装VS2005的时候可以选择安装的,一般的朋友在装VS2005的时候都是全部安装,所以不用再装了。

    第二步:同样,Visual Studio Tools for Office 运行库一般也都先装了。如何没有装可以根据MSDN里面的链接到微软的网站上搜。

    第三步:Office主互操作程序集按照MSDN的提示安装就OK了。

    第四步:安装Office SP1升级包。

    经过上面的步骤,就可以新建Office应用程序了。如下图:

 

    不过,我在上面的步骤之后,还是没有建成功,还没有找到原因。出现下图的错误提示:

 

       安装方法2直接在C#工程中添加引用1

    在添加引用窗口中选择 COM 标签,再选择Microsoft Word 11.0 Object Library。如下图:

 

    以前遇到过添加不成功的情况。类似于下图,Word前面的会出现一个小黄色的图标。

 

可以用下面的方法解决:

1.  复制【安装目录】/Microsoft Office/OFFICE11/WSWORD.OLB 【安装目录】/Microsoft Visual Studio 8/SDK/v2.0/Bin 目录中。

2.  进入DOS界面,改变当前目录为【安装目录】/Microsoft Visual Studio 8/SDK/v2.0/Bin

3.  运行tlbimp WSWORD.OLB

4.  程序就会在该目录下生成一个word.dll文件。

5.  在工程中,添加引用,在添加引用窗口中选择 浏览 标签。浏览到相应目录选择word.dll

    安装方法3

   直接在C#工程中添加 引用 。在添加引用窗口中选择 浏览 标签。浏览到【安装目录】/Microsoft Office/OFFICE11下,添加WSWORD.OLB。这个方法与第二个方法基本上一致。

 

二.建立第一个程序

    由于第一种方法不成功。本代码用的第二种方法。

      object fileName = "f://lichun//office_test.doc";
     object missing = System.Reflection.Missing.Value;
     object readOnly = false;
     object visible = true;
     ApplicationClass word1 = new ApplicationClass(); ;
     Document wordDocument
= word1.Documents.Open(ref fileName,

                ref missing, ref missing, ref missing,

                ref missing, ref missing, ref missing,

                ref missing, ref missing, ref missing,

                ref missing, ref visible, ref missing,

                ref missing, ref missing, ref missing);

/**

*上面的open方法的参数中,如果不传参数,一定要用missing,

*不能object revert = null,把这个revert传给open,不然在运行的时候会报错。

*/

/* tb 是一个多行文本框 */

String ss = String.Format("/n");

Window win;

win = word1.ActiveWindow;

tb.Text = win.Caption + ss;

tb.Text += win.Type.ToString() + ss;

tb.Text += win.WindowState.ToString() + ss;

tb.Text += win.Visible.ToString() + ss;

 

int wordPages = win.ActivePane.Pages.Count;  //计算文档共有几页。

 

/**

* object item = WdGoToItem.wdGoToPage;

* object direction = WdGoToDirection.wdGoToAbsolute;

* object count = 2;

* Range firr = wordDocument.GoTo(ref item, ref direction, ref count,

*  ref missing);

*上面的几行是用来定位到某一页。通过firr.Select();可以得到一个range,

*不过,得到的是选择页的第一个字。不是整个页面。

*/

 

Paragraph pa = wordDocument.Paragraphs[1];

Range firr = pa.Range;      //这样得到的Range的范围就是整个段。

tb.Text += "开始点:" + firr.Start.ToString() + ss;

tb.Text += "结束点:" + firr.End.ToString() + ss;

 

firr.End = firr.Start+1;

/**

* 开始点和结束点是表示范围的,两个点是相对于在整篇文档中的位置索引,

* 开始点和结束点之间必须差1,及以上。上面这条语句也适合空段。

**/

tb.Text += "开始点:" + firr.Start.ToString() + ss;

tb.Text += "结束点:" + firr.End.ToString() + ss;

/** 

* object un = WdUnits.wdCharacter;

* object cu = 0;

* Range firr = firr.Next(ref un, ref cu);

* 上面的firr最后不能得到一个Range = null,所以cu不能说0

**/

 

Selection se = word1.Selection; //选择了文档的第一个字

tb.Text += se.Text;

 

/**

* 下面是关闭整个WORD程序,如果不关闭的话,可以系统资源管理器中,

* 查看线程,还//可以看到有WORD.EXE存在,表明没有关闭,并且在下次

* 运行的时候,WORD文档就只能//以只读方式打开。

**/

object saved = WdSaveOptions.wdPromptToSaveChanges;

object ss= WdOriginalFormat.wdWordDocument;

wordDocument.Close(ref saved, ref ss, ref missing);

word1.Quit(ref saved, ref ss, ref missing);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值