您现在的位置: 爱51代码网 >> 范文 >> 文章正文
VS2008 office2007读取word数据速度太慢

VS2008 office2007读取word数据速度太慢

开发环境是:win7 + vs2008 MFC + office2007 , 基本上可以读取
主要的问题:
1. 速度太慢,读取一个 6M的文件(500页,15000 个paragraph)的数据,按照paragraph一个一个读取,要一个小时,调试时发现,开始的时候很快,越往后越慢,各个对象的ReleaseDispatch操作对速度没有明显的影响。 但是发现一次性读出全部text倒是非常快。
2. 读出来的英文数据基本正确,但是中文不对,不知道该如何设置。


主要的代码如下:
// 首先建立一个word实例对象
if (!oWordApp.CreateDispatch(TEXT("Word.Application")) ){

AfxMessageBox( TEXT( "CreateDispatch  failed." ) , MB_OK &brvbarMB_SETFOREGROUND); 
return;  // 一定要返回,否则程序崩溃
}

// 创建文档
oDocs = oWordApp.get_Documents(); 

// 打开一个新文档,sMyFileName 
CComVariant tpl(sMyFileName, NewTemplate(false), DocType(0), Visble;
oDoc = oDocs.Add(&tpl,&NewTemplate,&DocType,&Visble);
// 得到所有段
paragraphs = oDoc .get_Paragraphs();
 
paCounst = paragraphs.get_Count();
// 将所有段中的每一段都存在数组里
for( lc = 1 ; lc < paCounst+1 ; lc++ )
{

     // 得到一段
    CParagraph  paragraph;
   paragraph = paragraphs.Item( (long)lc );

   // 得到一段的文本
   CRange range = paragraph.get_Range();
   CString strRangeText = range.get_Text();

    ...进行其他的处理
   //释放对象
    paragraph.ReleaseDispatch();

}

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    undefined reference timer_crea
    linux文件/usr/lib破坏了,还原后
    linux上运行system函数时,print
    Failed to open eth0
    android手机无法与eclipse或电脑
    C/C++洗牌算法源代码
    servlet技术实现用户名唯一的验证
    E-business suite system servic
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    sharepoint 2010 获取用户信息Us
    mysql主从同步延迟方案解决的学习
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    恢复使用繁体字可行性研究报告
    系统硬盘格式化后无法从光盘
    win7下安装系统服务提示访问
    bitlocker示加密完就关机了
    win7接两个网络如何配置
    移动GPRS接入点的IP分配
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |