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 ¦MB_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();
}
|