1.新建一个MFC工程,如对话框工程。
2.点击 项目--添加类-- MFC -- TypeLib中的MFC类,点击 "添加"
3.可用的类型裤中,找到 "Microsoft Excel 14.0 Object Library<1.7>" (不同版本的excel不同类型裤),接着添加以下9项:
1>_Application
2>_Chart
3>_Workbook
4>_Worksheet
5>Charts
6>Font
7>Range
8>Workbooks
9>WorkSheets
则会自动生成9个头文件,把头文件添加到 XXXDlg.cpp 中
#include "CApplication.h"
#include "CChart.h"
#include "CCharts.h"
#include "CFont0.h"
#include "CRange.h"
#include "CWorkbook.h"
#include "CWorkbooks.h"
#include "CWorksheet.h"
#include "CWroksheets.h"
尝试重新编译工程,此时弹出一堆的错误。
将以上9个.h中的
#import "xxx"
全部屏蔽掉即可。
4.在 工程 CXXXApp::InitInstance() 里添加对OLE的支持
if (!AfxOleInit())
{
AfxMessageBox(_T("Can't Initialize COM dll!"));
return FALSE;
}
5.重新编译工程,此时 CRange.h 的 DialogBox函数 会报错误,将 DialogBox 函数名 改为 _DialogBox 即可。
6.添加一个按钮Run,然后点击时启动Excel。函数如下
void XXXDlg::OnClickedRun()
{
COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional(long)DISP_E_PARAMNOTFOUND, VT_ERROR);
CApplication app;
if ( !app.CreateDispatch(TEXT("Excel.Application")) )
{
AfxMessageBox(TEXT("Could not start Excel and get application object!"));
return;
}
app.put_Visible(TRUE);
app.pu_UserControl(TRUE);
}