vc_操作Excel模板步骤.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
vc_操作Excel模板步骤

最近刚完成一个例子,受益不菲,和大家分享一下。 VC的Excel编程操作,总结:(结合网络资源) 利用VC操作Excel的方法至少有两种 1 .利用ODBC把Excel文件当成数据库文件,来进行读、写、修改等操作,网上有人编写了CSpreadSheet类,提供支持。(不太能理解CSpreadSheet) 2. 利用Automation(OLD Automation)方法。将Excel当成组件服务器,利用VBA。又分为基于MFC的和SDK两种。(制作报表适用) ??? 主要研究了一下第二种基于MFC的OLE编程方法。 一、Excel的对象模型 ?????? Application:代表应用程序本身。即Excel应用程序 ?????? Workbooks:是Workbook 的集合,代表了工作薄。 ?????? Worksheets:是Worksheet的集合,是Workbook的子对象。 ?????? Range:是Worksheet的子对象,可以理解为Sheet中一定范围的单元格。 ?????? Shapes:是Worksheet的子对象,用于存储图片等信息的单元格。 二、VC操作Excel的初始化过程 ?1、导入Excel库文件。 ????? 使用VC6.0的同志们可进行一下操作获取Excel库文件: 启动VC 6.0,打开新建对话框,新建一个MFC AppWizard(exe)工程,这里工程明设置为TestExcel。 进入MFC 应用程序向导,选择 基本对话框,直接点击完成,工程文件结构如下图: 打开MFC ClassWizard窗口(查看—建立类向导),选择Automation,单击Add Class按钮,选择From a type library...,弹出文件选择对话框,之后定位到Microsoft Office的安装目录(通常为C:\Program Files\Microsoft Office\Office),选择excel.exe适用于Excel2003;EXCEL9.OLB适用于Excel2000),确定后,弹出Confirm Classes窗口,选择列表中的所有类,单击OK按钮。 返回编辑器,查看工程文件,可发现多了EXCEL9.H及EXCEL9.CPP两个文件。 ?? 打开stdafx.h头文件确保包含如下头文件: #include afxdisp.h #include excel.h 打开TestExcel.cpp文件,修改CTestExcelApp::InitInstance(),加入如下代码: BOOL CTestExcelApp::InitInstance() {COM组件 if( !AfxOleInit() ){ AfxMessageBox(初始化Ole出错!); return FALSE; } AfxEnableControlContainer(); ...... ...... return FALSE; } 为保证编译时不产生重复定义错误,打开excel.h文件,在文件开始位置加入如下代码: #if !defined _HEAD_FILE_EXCEL_ #define _HEAD_FILE_EXCEL_ 相应的,在文件末尾加入: #endif 操作EXCEL文件 ??选择ResourceView工作区,打开IDD_TESTEXCEL_DIALOG,在对话框中添加一个按钮控件Button1,双击它,生成一个Button1 Click事件的处理函数: void CTestExcelDlg::OnButton1(){ // TODO: Add your control notification handler code here } 在OnButton1()函数中,添加代码: void CTestExcelDlg::OnButton1() { // 制单 CComboBox *pCmb = (CComboBox *)GetDlgItem(IDC_COMBO1); int pos = pCmb-GetCurSel(); if (pos == 0) { MessageBox(TEXT(请选择销售订单号!), TEXT(注意)); return ; } else {//参数定义不再赘述 CEdit *pEdt = (CEdit *)GetDlgItem(IDC_EDIT1); pCmb-GetLBText(pos,m_oOrderID);//订单号 pEdt-GetWindowTextW(m_oDeliveryDate);//交货日期 pEdt

您可能关注的文档

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档