编程词典
明日图书
明日软件
用户注册
用户登录
站内
  当前位置:编程词典服务网 >> 编程词典社区论坛 >> 统计Word文档段落数
  · 统计Word文档段落数

用户:  明日科技
发帖:  417 篇
作品:  1 个
回复:  2 篇
技术分:  805 分
等级:  
注册:  2009-09-07 06:37:23



发表于:2010-06-11 08:38:59
          楼主

在使用Word文档时,经常要对文档中的字符数、段落数、页码等进行统计,那要如何通过程序来实现这一功能呢?通过_Document类的ComputeStatistics方法可以获得文档中的段落数量,下面通过实例来介绍一下如何获得Word文档中的段落数量,步骤如下:

1)创建一个基于对话框的应用程序,设置对话框标题为“统计Word文档段落数量”。

2)向对话框中添加3个静态控件、一个编辑框控件和一个按钮控件。界面布局如图1所示。




                          1  界面设计

3)在应用程序类(CCountParagraphApp)的InitInstance函数中初始化COM环境,代码如下。

::CoInitialize(NULL);

4)按<Ctrl+W>组合键打开类向导,向工程中添加_Application类、Documents类和_Document类。并为控件关联变量,如图2所示。




2  类向导

注意在为静态文本控件关联变量时首先要修改控件的ID例如本示例将IDIDC_STATIC修改为IDC_NUMBERS如果不修改控件的ID则不能在类向导中显示静态文本控件

5)在CCountParagraphDlg类中应用需要使用的头文件,代码如下。

#include "msword9.h"

#include "atlbase.h"

#include <comdef.h>

6)处理“打开”按钮的单击事件,在该事件的处理函数中,通过文件打开对话框获得选择的Word文档路径,并获得文档中的段落数量,代码如下。

void CCountParagraphDlg::OnButopen()

{

        CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,

                "All Files(*.doc)|*.doc||",AfxGetMainWnd());                       //构造文件打开对话框

        CString strPath;                                                                                        //声明变量

        if(dlg.DoModal() == IDOK)                                                          //判断是否按下"打开"按钮

        {

                strPath = dlg.GetPathName();                                                //获得文件路径

                m_Path.SetWindowText(strPath);                                //显示文件路径

                _Application app; 

                Documents docs;

                _Document doc;

                long sum = 0;

                CComVariant a (_T(strPath)),b(false),c(0),d(true);      //声明变量

                //初始化连接

                app.CreateDispatch("word.Application");

                docs.AttachDispatch(app.GetDocuments());

                doc.AttachDispatch(docs.Add(&a,&b,&c,&d));

                //ComputeStatistics的第一个参数值为4时,表示要获取的是文档中段落数

                long paragraph = doc.ComputeStatistics(4,&_variant_t((bool)FALSE));

                CString strParagraph;

                strParagraph.Format("%d",paragraph);                    //格式化字符串

                m_Number.SetWindowText(strParagraph);                           //显示段落数

                //关闭

                app.Quit(&b,&c,&c);

                doc.ReleaseDispatch();

                docs.ReleaseDispatch();

                app.ReleaseDispatch();

        }

}

运行程序,效果如图3所示。



 

 

3  运行结果

本帖赏分:0 分   回复数:0 篇     下载附件
修改   删除   引用   回复
该帖暂无回复!
吉林省明日科技有限公司提供技术支持. 
Copyright © 1999-2008 吉林省明日科技有限公司. 吉ICP备10002740
当前时区 GMT+8, 今天是 
刷新页面 - 关于我们 - 设为首页