http://www.paper.edu.cn
-1-
VC++中用 Excel 实现数据库表的导入与导出
王文会
1
,陈静
2
,严翠玲
1
1 中共河北省委党校科文部,河北石家庄(050061)
2 石家庄市军械工程学院计算机工程系,河北石家庄(050003)
摘 要:近几年来,随着数据库技术飞速发展,Excel 作为一种数据处理软件,在数据库管
理信息系统中的应用越来越广泛,越来越多样。Visual C++是现在最为通用的开发工具之一,
它提供了相当齐备的类库和友好的编程界面,其数据库编程技术也非常成熟和完善。本文在
分析了 OLE 技术的基础上,介绍了在 Visual C++环境中实现 Excel 与 SQL Server 数据库数
据表的双向传输的方法。同时,在 Excel 中指定列标题的前提下,实现了 Excel 中数据的有
选择性地读取,增加了程序的灵活性。
关键字:VC++;Excel;数据库;SQL Server;导入;导出
中图分类号:TP393 文献标识码:A
Visual C++是现在最为通用的开发工具之一,它提供了相当齐备的类库和友好的编程界
面。虽然 Visual C++数据库的开发较 Delphi、Visual Basic 以及 PowerBuilder 复杂,但 Visual
C++ 从 4.0 版本开始也开始对数据库的开发提供了比较好的环境支持[1]。随着版本的升高,
Visual C++对数据库的访问技术更加成熟,功能也更加强大。借助于 Visual C++可以轻松地
开发出功能强大、速度快、应用广并且占用资源少的应用程序。在信息管理系统的开发中,
一般都包括数据的添加修改删除等操作。手动添加数据以初始化数据库既耗时又费力,如果
通过 Excel 表,工作量可大大减少[2]。本文介绍了在 Visual C++环境下利用 OLE 技术访问
Excel,实现了 Excel 与数据库的双向传输。同时给出了读取指定列数据的算法。
1. Excel 对象模型概述
Visual C++中访问 Excel,一种是利用 ODBC 技术直接访问,首先应确保 ODBC 中已经
安装有 Excel 表格文件的驱动“MICROSOFT EXCEL DRIVER (*.XLS)”,然后在在 StdAfx.h
文件中加入#include <afxdb.h>和#include <odbcinst.h>,这样就可以把 Excel 当做一个数据库
文件进行访问,有很多介绍通过 ODBC 技术读写 Excel 的文章[3],本文不再赘述。ODBC
通常用来访问不具备 OLE-DB 特性的非 Microsoft 数据库中的数据,而且 ODBC 需要注册
DSN,运行速度慢,为系统开发带来了不便。另外一种访问 Excel的方法是利用微软的 ActiveX
Automation 技术访问数据库,该技术不需要注册 DSN,完全通过程序实现。而本文的数据
库访问技术采用的是 ADO,同样不需要注册 DSN,这样软件开发就得以统一。
要利用 Excel 的 ActiveX Automation 的功能,实现 Excel 的读写,必须与 Excel 对象模
型提供的对象进行交互[4]。Excel 提供了数百个可能需要与之交互的对象,下面只介绍编程
中要用到的几个对象:
1) Application 对象:Application 对象提供大量有关正在运行的应用程序、应用于该实
例的选项以及在该实例中打开的当前用户的对象的信息。
2) Workbook 对象:Workbook 类表示 Excel 应用程序内的单个工作簿。
3) Worksheet 对象:虽然 Worksheet 类提供了大量成员,但大部分属性、方法和事件
都与 Workbook 类提供的成员相同或相似。
4) Range 对象:
Range 对象表示一个单元格、一行、一列、包含一个或多个单元格块。
Application 对象代表 Excel。使用 Application 对象可以控制应用程序级的设置、内置的 Excel
函数以及高级方法,例如 InputBox 方法。Workbook 对象是指 Excel 中的工作簿,即是说 Excel
- 1
- 2
- 3
- 4
- 5
- 6
前往页