一、首先,初始化和释放COM环境。
  1、在OnInitDialog()函数中初始化COM环境
  <span style="white-space:pre">    </span>SetIcon(m_hIcon, TRUE);            // 设置大图标
  SetIcon(m_hIcon, FALSE);        // 设置小图标
  // TODO:  在此添加额外的初始化代码
  ::CoInitialize(NULL);   //初始化COM环境
  return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
  2、重载OnDestroy函数,并添加释放COM环境的代码如下
  void CExportExcelDlg::OnDestroy()
  {
  CDialog::OnDestroy();
  ::CoUninitialize(); //释放COM环境
  }


  二、Excel接口的处理
  为了能调用Excel的接口,打开类向导,选择Add Class->From a type library,在Excel安装路径中选择EXCEL.exe,可以只把一些比较常用的类如_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range加进去(我用的是VS2103,添加这些类的时候见了一个头文件(.h),没有.cpp,而且把这些加进去之后编译报错,我在网上找了一下,这种情况好像好不少,也没找到解决的办法,只有用VC6.0生成这两个文件了,然后把这两个文件添加到项目中好了,这两个文件在群上)。


  三、创建一个excel模板
  在利用加载Excel模板来生成要求的表格,在本工程Debug文件夹中建立一个Excel文件,命名为template.xls
 

  四、添加一个Button控件,并添加消息响应好函数,定义变量如下:

 

<span style="white-space:pre">    </span>Range m_ExlRge;
_Worksheet m_ExlSheet;
Worksheets m_ExlSheets;
_Workbook m_ExlBook;
Workbooks m_ExlBooks;
_Application m_ExlApp;
COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

 

  五、创建Excel服务
  <span style="white-space:pre">    </span>if (!m_ExlApp.CreateDispatch(L"Excel.Application", NULL))  ///用m_ExlApp对象创建Excel进程
  {
  AfxMessageBox(L"创建Excel服务失败!");
  return;
  }