VS2008中C++打开Excel(MFC)第一步:建立project
选择C++下的MFC AppWizard
选择基本对话框,中文。之后点击finish
第二步:导入EXCEL头文件
Ctrl+W->Automation->Add Class->EXCEL.exe后,点击打开,进入Confirm Classes对话框下,(我用的是Microsoft Office2003)将下列Class添加进来。点击OK
确定类已添加:
并在TestExcelDlg.cpp开始添加:
#include "excel.h"
第三步:打开COM口
添加AfxOleInit();
第四步:建一个Button按钮
选择Toolbox中的Button在TExcel.rc的IDD_TESTEXCEL_DIALOG中点击,建立如上图的Button按钮将属性中的标题修改为“创建报表”
第五步:为Button按钮编写程序
双击“打开Excel”
在// TODO: Add your control notification handler code here后添加如下程序:
_Application objApp;//判断是否存在EXCEL应用程序
Workbooks objBooks;
_Workbook objBook;
Worksheets objSheets;
_Worksheet objSheet;
Range objRange,usedRange;//单元格获取
VARIANT ret;//
Font font;
objApp.CreateDispatch("Excel.Application");//判断是否存在EXCEL应用程序
COleVariant VOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
objApp.SetVisible(TRUE);
objApp.SetUserControl(TRUE);
LPDISPATCH pwkbooks=objApp.GetWorkbooks();
objBooks.AttachDispatch(pwkbooks,TRUE);
char currentprogrampath[MAX_PATH];
objBooks=objApp.GetWorkbooks();//
objBook=objBooks.Add(VOptional);
objSheets=objBook.GetSheets();
CString str;
str="\\test.xls";
objBooks.Open(ExcelName,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOp tional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional);
// objRange.SetValue();
str="A1";
objSheet=objSheets.GetItem(COleVariant((short)1));
objRange=objSheet.GetRange(COleVariant(str),COleVariant(str));
objRange.SetValue2(COleVariant("hello excel"));
font=objRange.GetFont();
font.SetBold(COleVariant((short)TRUE));
objRange=objSheet.GetRange(COleVariant("C4"),COleVariant("B4"));
objRange.SetFormula(COleVariant("=RAND()*100000"));
objRange.SetNumberFormat(COleVariant("$0.00"));
usedRange=objRange.GetEntireColumn();
usedRange.AutoFit();
最后运行: