VC中将数据导出到Excel表格中

发表于:2014-7-22 09:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:心中有道    来源:51Testing软件测试网采编

  由于项目需要,要把数据库中的数据导出生成excel表格,网上这方面的资料好少,找了好久,七拼八凑的,把这个功能实现了,下面分享一下
  一、首先,初始化和释放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;
  }
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号