文档详情

vc 操作Excel模板步骤.doc

发布:2017-12-16约7.06千字共7页下载文档
文本预览下载声明
最近刚完成一个例子,受益不菲,和大家分享一下。 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
显示全部
相似文档