VC2003使用MSWORD.OLB读取表格数据

在VC2003中新建一程序,选择项目--》添加类--》MFC--》类型库中的MFC类。

然后选择“文件”单选按钮,默认选择的是“注册表”单选按钮。

从“位置”的“...”按钮(浏览)中选择word安装路径中的MFWORD.OLB文件,

然后在“列表”中就会显示所有的类型,选择需要使用的类型,添加到右侧。

完成后,会把选择的类的头文件添加到你的项目中,这样你就可以使用这些类

操作word文档了。

首先要包含头文件,即需要的类所在的.h文件。

以下为使用这些类进行读取Word中表格数据的实现:

CApplication app; CDocuments docs; CDocument0 doc; CTables0 WordTables; CTable0 WordTable; CCell WordCell; CRange WordRange; CColumns0 WordCols; CRows WordRows; if(!app.CreateDispatch(_T("Word.Application"))) { AfxMessageBox(_T("创建Word服务失败!")); return false; } docs.AttachDispatch(app.get_Documents()); app.put_Visible(false); COleVariant vFileName(strFile); COleVariant vTrue((short)TRUE); COleVariant vFalse((short)FALSE); COleVariant vOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); //打开文件 IDispatch *dispatch=docs.Open(vFileName,vTrue,vFalse,vFalse, vOptional,vOptional,vOptional,vOptional,vOptional,vOptional,vOptional, vOptional,vOptional,vOptional,vOptional,vOptional); if(dispatch) { doc.AttachDispatch(dispatch); } else { //出错了 CString szErr=""; szErr.Format("打开文件出错,请查看文件是否存在!"); ::AfxMessageBox(szErr); //退出程序,释放对象 app.Quit(&vOptional,&vOptional,&vOptional); docs.ReleaseDispatch(); app.ReleaseDispatch(); return false; } dispatch=doc.get_Tables(); if(dispatch) { WordTables.AttachDispatch(dispatch); } else { //出错了 CString szErr=""; szErr.Format("取得表格集合出错!"); ::AfxMessageBox(szErr); //退出程序,释放对象 app.Quit(&vOptional,&vOptional,&vOptional); docs.ReleaseDispatch(); app.ReleaseDispatch(); doc.ReleaseDispatch(); return false; } int nTableCount=WordTables.get_Count(); if(nTableCount>0) { for(int i=1;i<=1;i++) { WordTable.AttachDispatch(WordTables.Item(i)); WordCols.AttachDispatch(WordTable.get_Columns()); WordRows.AttachDispatch(WordTable.get_Rows()); int nCols=WordCols.get_Count(); int nRows=WordRows.get_Count(); 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.get_Text(); AfxMessageBox(szText); } } } } app.Quit(&vOptional,&vOptional,&vOptional); doc.ReleaseDispatch(); docs.ReleaseDispatch(); app.ReleaseDispatch();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值