分享
分享赚钱 收藏 举报 版权申诉 / 8

类型编程类-001-用ODBC数据库技术存取Excel.doc

  • 上传人:gnk289057
  • 文档编号:7411191
  • 上传时间:2019-05-16
  • 格式:DOC
  • 页数:8
  • 大小:57.50KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    编程类-001-用ODBC数据库技术存取Excel.doc
    资源描述:

    1、收集日期:2011-11-07 收集人:邓玉龙共 8 页 第 1 页用 ODBC 数据库技术存取 Excel关键词:OBDC、EXCEL、C+BuilderODBC 就是开放式数据库链接标准,不同种类的数据库只需提供各自的ODBC 驱动程序就可按相同的命令操纵,微软同样为 Excel 提供了 ODBC 驱动程序,我们可在程序中象数据库一样存取 Excel 表格。定义好 ODBC 数据源后,实际试验中并没有如想象的那样简单,在控件 Table 的属性 TableName 中总是检索不到表名,同样也没有相关的资料可供查阅。通过对 Excel 的分析,终于发现了问题的关键所在:ODBC 的表名并不就

    2、是 Excel 的工作表名(如 Sheet1) ,在Excel 表格中必须对要求操作的行列区域定义一个 “名称”作为数据库的表名,该区域的首行各列必须是字段名(否则首行数据会当成字段名) ,可以定义多个表名。具体操作步骤如下:1. 在 Excel 上定义 “表名 ”运行 Excel 程序,打开或新建一表格,按下鼠标左键选择一片区域(起始行先填上字段名) ,再将鼠标位置点到左上角的地址栏,输入一表名如 ABC,或者在菜单上选:“插入(I) ”“名称(N) ”“定义(D) ”,再输入表名(若已定义,可在此处删除掉) ,存盘退出(假定文件名取为 C:Book.xls) ,若嫌字段名行多余,存盘前可隐

    3、藏掉。2. 定义 ODBC 数据源从 Windows 桌面“我的电脑”进入“控制面板” ,双击“32 位 ODBC”图标,运行“用户 DSN”中的“添加(D) ”后选“ExcelDriver(*.xls) ”,再点“完成”便弹出对话框,在“数据源名(N) ”右边填一名称,如: excel01,在“版本(V”上选“Excel97 ”,点中“选项”取消“只读” ,在“选定工作目录”中,选定 Excel 文件名(本例 c:Book1.xls) ,再点“确定”直至退出。3. 设置 Database 控件避免登录检查运行 C+Builder,在 Form1 中加上 DataAccess 的三个控件:Da

    4、tabase1、DataSource1、Table1 ,加入 Database1 的目的是为了避免打开数据库时出现登录框,为此双击此控件弹出一对话框,在 Aliasname 中选 ODBC 数据源名(本例为 Excel01) ,在 Name 中填上一新的别名(本例取 Excel02) ,再点“Defaults”出现一批参数缺省值,最后取消 Options 中的两项“Loginprompt”与“Keepinactiveconnect” ,点 OK 退出。收集日期:2011-11-07 收集人:邓玉龙共 8 页 第 2 页4. 设置其它控件属性将 Table1 的属性 DatabaseName 选

    5、为步骤 3 中的新别名 Excel02,再将另一属性 TableName 选为步骤 1 的表名(本例为 ABC) ;将控件 DataSource1 的属性DataSet 选为 Table1;双击 Form1,在 FormCreate 事件子程序内加上一句 Table1-Open()。5. 查看数据库内容为了直接看到 Excel 数据,在 Form1 中再加上 DataControls 的控件 DBGrid1和 DBNavigator1,将两者的属性 DataSource 都选为 DataSource1,双击 Table1 的属性 Active 将值改为 true,等待数秒就可看到 DBGrid

    6、1 中出现数据,最后恢复Tabel1-Active 为 false。注意:程序编译前,必须将刚打开的表关闭,即:使 Table1-Active 为 false,否则程序运行时报告出错,因为 Excel 表总是被 ODBC 以“独占”方式打开。OLE 操作 Excel(目前最全的资料)(04.2.19 更新)用 OLE 操作 Excel(目前最全的资料)(04.2.19 更新)本文档部分资料来自互联网,大部分是 ccrun(老妖)在 Excel 中通过录制宏察看宏代码转为 CB 代码而来.本文档不断更新中.欢迎大家关注.要在应用程序中控制 Excel 的运行,首先必须在编制自动化客户程序时包含

    7、Comobj.hpp#include “Comobj.hpp“C+ Builder 把 Excel 自动化对象的功能包装在下面的四个 Ole Object Class 函数中,应用人员可以很方便地进行调用。设置对象属性:void OlePropertySet(属性名,参数);获得对象属性:Variant OlePropertyGet(属性名, 参数);调用对象方法:1) Variant OleFunction(函数名,参数);2) void OleProcedure(过程名,参数);在程序中可以用宏定义来节省时间:#define PG OlePropertyGet收集日期:2011-11-07

    8、 收集人:邓玉龙共 8 页 第 3 页#define PS OlePropertySet#define FN OleFunction#define PR OleProcedure举例:ExcelApp.OlePropertyGet(“workbooks“).OleFunction(“Add“);可写为ExcelApp.PG(“workbooks“).FN(“Add“);C+ Builder 中使用 OLE 控制 Excel2000,必须掌握 Excel2000 的自动化对象及 Microsoft Word Visual Basic 帮助文件中的关于 Excel 的对象、方法和属性。对象是一个

    9、Excel 元素, 属性是对象的一个特性或操作的一个方面,方法是对象可以进行的动作。首先定义以下几个变量:Variant ExcelApp,Workbook1,Sheet1,Range1;1、Excel 中常用的对象是:Application,Workbooks,Worksheets 等。创建应用对象Variant ExcelApp;ExcelApp = Variant:CreateObject (“Excel.Application“);或者ExcelApp = CreateOleObject (“Excel.Application“);创建工作簿对象Variant WorkBook1;Wo

    10、rkBook1 = ExcelApp.PG(“ActiveWorkBook“);创建工作表对象Variant Sheet1;Sheet1 = WorkBook1.PG(“ActiveSheet“);创建区域对象Variant Range;Range = Sheet1.PG(“Range“,“A1:A10“); 或者使用Excel.Exec(PropertyGet(“Range“)= 0; nRotate -= 5)Chart.Exec(PropertySet(“Rotation“) nRotate);另外,为保证程序能正常运行,需要在程序中判断目标机器是否安装了 Office;tryExcel

    11、App = Variant:CreateObject (“Excel.Application“);catch(.)ShowMessage(“运行 Excel 出错,请确认安装了 Office“);return;#include “comobj.hpp“/-/ 对指定 Excel 文件中的指定列进行排序/ strExcelFileName : excel 文件名/ nCol : 指定的列号/ nSortStyle : 1:升序,2: 降序void SortExcelColumn(String strExcelFileName, int nCol, int nSortStyle)Variant v

    12、ExcelApp, vWorkbook, vRange;收集日期:2011-11-07 收集人:邓玉龙共 8 页 第 8 页vExcelApp = Variant:CreateObject(“Excel.Application“);vExcelApp.OlePropertySet(“Visible“, false);vExcelApp.OlePropertyGet(“WorkBooks“).OleProcedure(“Open“, strExcelFileName.c_str();vWorkbook = vExcelApp.OlePropertyGet(“ActiveWorkbook“);vE

    13、xcelApp.OlePropertyGet(“Columns“, nCol).OleProcedure(“Select“);vExcelApp.OlePropertyGet(“ActiveSheet“).OlePropertyGet(“Cells“, 1, nCol).OleProcedure(“Select“);vRange = vExcelApp.OlePropertyGet(“Selection“);vRange.Exec(Function(“Sort“)vExcelApp.OlePropertyGet(“Selection“)nSortStyle);vWorkbook.OleProcedure(“Save“);vWorkbook.OleProcedure(“Close“);vExcelApp.OleFunction(“Quit“);vWorkbook = Unassigned;vExcelApp = Unassigned;ShowMessage(“ok“);void _fastcall TForm1:Button1Click(TObject *Sender)/ 对 C:123123.xls 文件中第一个 Sheet 的第四列进行升序排序SortExcelColumn(“C:123123.xls“, 4, 1);/-

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:编程类-001-用ODBC数据库技术存取Excel.doc
    链接地址:https://www.docduoduo.com/p-7411191.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开