文档详情

VS2008环境使用MFC操作读取excel文件.docx

发布:2017-12-19约3.29千字共5页下载文档
文本预览下载声明
1. 建立MFC工程,MDI(基于对话框),其他默认即可。2. 操作Excel文件初始化:??a. project-add class-MFC class from typelib (项目-添加类-Typelib中的MFC类)导入Excel.exe,一般都在C:/Program Files/Microsoft Office/Office12路径下(即选择你的office安装路径下的excel.exe加入)??b. 选中以下几项_Application,_WorkSheet,_WorkBook,WorkSheets,WorkBooks,Range,然后导入;??c. 导入后自动在工程中添加CApplication,CWorkSheet,CWorkBook,CWorkSheets,CWorkBooks,CRange这些类;?然后需要把这些类的头文件中的第一句话 #import .......EXCEL.EXE nonamespace 删除;?引入之后如果编译遇到错误,Not enough actual parameters for macro DialogBoxW. 让人头疼!?解决方法是在CRange类中,?[cpp]?/icyfox_bupt/article/details/6318979view plain/icyfox_bupt/article/details/6318979copyVARIANT?DialogBox()??{???VARIANT?result;???InvokeHelper(0xf5,?DISPATCH_METHOD,?VT_VARIANT,?(void*)result,?NULL);???return?result;??}????DialogBox()前面添加下划线变成_DialogBox(),解决了!3.操作excel文件??在“资源”里面选择MFC自动建立的对话框,双击“打开”按钮(若没有就自己做一个),然后程序会将你到对这个按钮的函数里,在函数中写如下内容: (文件是CxxxDlg.cpp ?xxx是你的项目名称)?[cpp]?/icyfox_bupt/article/details/6318979view plain/icyfox_bupt/article/details/6318979copyvoid?Cexcel打开3Dlg::OnBnClickedOk()??{???//?TODO:?在此添加控件通知处理程序代码??CApplication?app;???CWorkbooks?books;???CWorkbook?book;???CWorksheets?sheets;???CWorksheet?sheet;???CRange?range;???CRange?iCell;???LPDISPATCH?lpDisp;???COleVariant?vResult;???COleVariant?covOptional((long)DISP_E_PARAMNOTFOUND,?VT_ERROR);???if(!app.CreateDispatch(LExcel.Application))???{???AfxMessageBox(L无法启动Excel服务器!);???return;???}???books.AttachDispatch(app.get_Workbooks());???lpDisp?=?books.Open(“d://test.xls”,covOptional,?covOptional,?covOptional,?covOptional,?covOptional,covOptional,?covOptional,?covOptional,?covOptional,?covOptional,covOptional,?covOptional,?covOptional,covOptional);???//得到Workbook??book.AttachDispatch(lpDisp);???//得到Worksheets??sheets.AttachDispatch(book.get_Worksheets());????//得到当前活跃sheet??//如果有单元格正处于编辑状态中,此操作不能返回,会一直等待??lpDisp=book.get_ActiveSheet();???sheet.AttachDispatch(lpDisp);???//读取第一个单元格的值??range.AttachDispatch(sheet.get_Cells());???range.AttachDispatch(range.get_Item?(COleVariant((long)2),COleVariant((long)
显示全部
相似文档