当前位置:首页经验技巧Office经验office基础

vc如何读取word,读取,vc

2026-01-11 13:13:54

1.请高手帮忙解决一下,如何在VC中读取word文件的内容并进行处理

vc6测试成功,写的有点乱你自己好好看看吧._Application app; Documents docs; _Document doc; Tables WordTables; Table WordTable; Cell WordCell; Range WordRange; Columns WordCols; Rows WordRows; if(!app.CreateDispatch("Word.Application")) { MessageBox("创建Word服务失败!",_T("提示"),MB_ICONERROR); return; } docs.AttachDispatch(app.GetDocuments()); app.SetVisible(true);//打开文件 IDispatch *dispatch=docs.Open(&_variant_t(_T("d:\\test.doc")),&vtMissing,&vtMissing,&vtMissing, &vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing, &vtMissing,&vtMissing,&vtMissing,&vtMissing); if(dispatch) { doc.AttachDispatch(dispatch); } else {//出错了 CString szErr=""; szErr.Format("打开文件出错,请查看文件是否存在!"); ::AfxMessageBox(szErr); //退出程序,释放对象 app.Quit(&vtMissing,&vtMissing,&vtMissing); docs.ReleaseDispatch(); app.ReleaseDispatch(); return; } dispatch=doc.GetTables(); if(dispatch) { WordTables.AttachDispatch(dispatch); } else {//出错了 CString szErr=""; szErr.Format("取得表格集合出错!"); ::AfxMessageBox(szErr); //退出程序,释放对象 app.Quit(&vtMissing,&vtMissing,&vtMissing); docs.ReleaseDispatch(); app.ReleaseDispatch(); doc.ReleaseDispatch(); return; } int nTableCount=WordTables.GetCount(); if(nTableCount>0) { for(int i=1;i<=nTableCount;i++) { WordTable.AttachDispatch(WordTables.Item(i)); WordCols.AttachDispatch(WordTable.GetColumns()); WordRows.AttachDispatch(WordTable.GetRows()); int nCols=WordCols.GetCount(); int nRows=WordRows.GetCount(); for(int j=1;j<=nRows;j++) { for(int k=1;k<=nCols;k++) { dispatch=WordTable.Cell(j,k); WordRange.AttachDispatch(dispatch); CString szText=WordRange.GetText(); this->MessageBox(szText); } } } } app.Quit(&vtMissing,&vtMissing,&vtMissing); doc.ReleaseDispatch(); docs.ReleaseDispatch(); app.ReleaseDispatch();。

2.vc读取word

转自

1.在VC中新建一控制台程序,选支持MFC(当然,你也可以不选择支持MFC的,不过会很麻烦) 2.按CTRL+W调出MFC ClassWizard,Add Class->From a type library,选择你的word的类型库(例如我的是word2003,安装在e盘,我的路径是"e:\edittools\microsoft office\office11\msword.olb"),选择完毕后,在弹出的窗口中选择要让classwizard生成的包装类,在本例中要用到 _Application,Documents,_Document,Range这四个类,选中他们后按OK 3.进入你的main函数所在的cpp文件,加入头文件引用 #include "msword.h" //引用刚才classwizard生成的idispatch包装类 4.加入代码

int _tmain( int argc, TCHAR * argv[], TCHAR * envp[]) { int nRetCode = 0 ; if ( ! AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0 )) { cerr << _T( " Fatal Error: MFC initialization failed " ) << endl; nRetCode = 1 ; } else { if (CoInitialize(NULL) != S_OK) { AfxMessageBox( " 初始化COM支持库失败! " ); return - 1 ; } _Application wordApp; Documents docs; _Document doc; Range aRange; COleVariant vTrue(( short )TRUE), vFalse(( short )FALSE), vOpt(( long )DISP_E_PARAMNOTFOUND, VT_ERROR); wordApp.CreateDispatch( " Word.Application " ,NULL); wordApp.SetVisible(FALSE); docs = wordApp.GetDocuments(); doc = docs.Open(COleVariant( " d:\\txt.doc " ),vFalse,vTrue,vFalse,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt); aRange = doc.Range(vOpt,vOpt); AfxMessageBox(aRange.GetText()); // 这里GetText得到的就是word文件的纯文本了,你可以将其写到txt文件中 doc.Close(vOpt,vOpt,vOpt); wordApp.Quit(vOpt,vOpt,vOpt); CoUninitialize(); } return nRetCode; }

本文来自CSDN博客,转载请标明出处:


免责声明:本站信息来自网络收集及网友投稿,仅供参考,如果有错误请反馈给我们更正,对文中内容的真实性和完整性本站不提供任何保证,不承但任何责任,谢谢您的合作。
版权所有:五学知识网 Copyright © 2015-2026 www.z8000w.com. All Rights Reserved .