您的位置:首页 > 编程语言 > C语言/C++

VS2008中C++打开Excel(MFC)

2013-10-21 11:34 681 查看
第一步:建立project


选择C++下的MFC Application


选择dialog based,中文。之后点击finish第二步:导入EXCEL头文件


选择Project->AddClass->MFC Class From Typelib后,点击Add,进入MFC ClassFrom Typelib Wizard对话框下,选择Microsoft Excel 11.0 Object Library<1.5>(我用的是Microsoft Office2003)将上图中Class添加进来。点击finish


并在TExcel.cpp开始添加:#include"CRange.h"#include"CSheets.h"#include"CWorkbook.h"#include"CWorkbooks.h"#include"CApplication.h"#include"CWorksheet.h"#include"CWorksheets.h"在每一个添加进来的头文件中去掉#import "C:\\Program Files\\MicrosoftOffice\\OFFICE11\\EXCEL.EXE" no_namespace第三步:打开COM口


添加AfxOleInit();第四步:建一个Button按钮


选择Toolbox中的Button在TExcel.rc的IDD_TEXCEL_DIALOG中点击,建立如上图的Button按钮将属性中的Caption修改为“打开Excel”第五步:为Button按钮编写程序双击“打开Excel”


在// TODO: Add your controlnotification handler code here后添加如下程序:CApplication objApp;//判断是否存在EXCEL应用程序 CWorkbooksobjBooks; CWorkbookobjBook; CWorksheetsobjSheets; CWorksheetobjSheet; CRangeobjRange,usedRange;//单元格获取 VARIANTret; objApp.CreateDispatch(_T("Excel.Application"));//判断是否存在EXCEL应用程序 COleVariantVOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR); objApp.put_Visible(TRUE); objApp.put_UserControl(TRUE); LPDISPATCHpwkbooks=objApp.get_Workbooks(); objBooks.AttachDispatch(pwkbooks,TRUE); charcurrentprogrampath[MAX_PATH]; objBooks=objApp.get_Workbooks(); objBook=objBooks.Add(VOptional); objSheets=objBook.get_Sheets(); CStringstr; str="A1"; objSheet=objSheets.get_Item(COleVariant((short)1)); objRange=objSheet.get_Range(COleVariant(str),COleVariant(str)); objRange=objSheet.get_Range(COleVariant(_T("C4")),COleVariant(_T("B4"))); objRange.put_Formula(COleVariant(_T("=RAND()*100000"))); objRange.put_NumberFormat(COleVariant(_T("$0.00"))); usedRange=objRange.get_EntireColumn(); usedRange.AutoFit();第六步:避免Error 2 error C2059: syntax error : ','将CRange.h下VARIANT DialogBox()改为VARIANT _DialogBox()最后运行:


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: