找回密码
 加入
搜索
查看: 5799|回复: 11

[系统综合] oracle查询结果写入到EXCEL中(字段和结果数据都必须写入)?

  [复制链接]
发表于 2011-8-1 11:28:21 | 显示全部楼层 |阅读模式
本帖最后由 lusheng0028 于 2011-8-1 13:09 编辑

oracle查询结果写入到EXCEL中(字段和结果数据都必须写入)?


#include <Array.au3>
#include <Excel.au3>
#include <SQLite.au3>
ProgressOn("进度条", "程序运行中", "0 %")
;Local $role
;Local $aResult, $iRows, $iColumns, $iRval
$Connection ="DRIVER={MICROSOFT ODBC FOR ORACLE};Server=orcl;User Id=picc;Password=181818"
_FileWriteLog("e:\my.log",$Connection)
$adoCon=ObjCreate("ADODB.Connection");建立ADO对象
$adoCon.open($Connection)

    _FileWriteLog("e:\my.log",$Connection)
$adoRs=ObjCreate("ADODB.Recordset");建立数据集对象
$adoRs.ActiveConnection=$adoCon ;绑定连接
$adoRs.open("select * from  bak_menusubrights_110622")
$oExcel=objcreate("excel.application")
$oExcel.visible=False
$oExcel.workbooks.add
ProgressSet(10 , "请等待", "程序正在运行")
With $oExcel.activesheet
    .range("A1").copyfromrecordset($adoRs)
EndWith
$adoRs.close
$adoCon.close
_ExcelBookSaveAs($oExcel, "e:\temp3.xls", "xls", 0, 1)
_ExcelBookClose($oExcel, 1, 0)

;Sleep(100)
ProgressSet(100 , "完成", "Complete")
Sleep(600)
ProgressOff()
发表于 2011-8-1 11:45:28 | 显示全部楼层
至今没看到autoit处理oracle的例子,遗憾
发表于 2011-8-1 12:13:24 | 显示全部楼层
楼主先写下查询的代码看下
发表于 2011-8-1 12:31:08 | 显示全部楼层
回复 2# netegg


    用COM ADODB对象应该可以,没有Oracle可联,没法试
象下面这样子,应该可以的:

$OraObj = ObjCreate("ADODB.Connection")

With $OraObj
    .ConnectionString =("Provider='OraOLEDB.Oracle';Data Source=" & $SID & ";User Id='" & $UID & "';Password='"& $Pin & "';")
    .Open
EndWith

$OraObjSet = ObjCreate("ADODB.RecordSet") 


然后就可以用这个对象句柄$OraObjSet调用各种方法来操作SQL记录了



$OraObjSet..MoveFirst
$OraObjSet..MoveNext
 楼主| 发表于 2011-8-1 13:08:50 | 显示全部楼层
#include <Array.au3>
#include <Excel.au3>
#include <SQLite.au3>
ProgressOn("进度条", "程序运行中", "0 %")
;Local $role
;Local $aResult, $iRows, $iColumns, $iRval
$Connection ="DRIVER={MICROSOFT ODBC FOR ORACLE};Server=orcl;User Id=picc;Password=181818"
_FileWriteLog("e:\my.log",$Connection)
$adoCon=ObjCreate("ADODB.Connection");建立ADO对象
$adoCon.open($Connection)

    _FileWriteLog("e:\my.log",$Connection)
$adoRs=ObjCreate("ADODB.Recordset");建立数据集对象
$adoRs.ActiveConnection=$adoCon ;绑定连接
$adoRs.open("select * from  bak_menusubrights_110622")
$oExcel=objcreate("excel.application")
$oExcel.visible=False
$oExcel.workbooks.add
ProgressSet(10 , "请等待", "程序正在运行")
With $oExcel.activesheet
    .range("A1").copyfromrecordset($adoRs)
EndWith
$adoRs.close
$adoCon.close
_ExcelBookSaveAs($oExcel, "e:\temp3.xls", "xls", 0, 1)
_ExcelBookClose($oExcel, 1, 0)

;Sleep(100)
ProgressSet(100 , "完成", "Complete")
Sleep(600)
ProgressOff()
 楼主| 发表于 2011-8-1 13:10:26 | 显示全部楼层
回复 3# kevinch


    写了
发表于 2011-8-1 15:01:06 | 显示全部楼层
http://www.autoitx.com/thread-7797-1-4.html
论坛里找到一个,没仔细看
发表于 2011-8-1 16:46:59 | 显示全部楼层
SELECT SYSCOLUMNS.NAME FROM SYSCOLUMNS WHERE SYSCOLUMNS.ID=OBJECT_ID('bak_menusubrights_110622')
先用这句导出表头试下,然后再导出内容
发表于 2011-8-1 20:01:15 | 显示全部楼层
好像论坛上有例子,不过要修改一下
发表于 2011-8-2 10:14:57 | 显示全部楼层
MYSQL的 没有问题
应该类似
发表于 2011-8-3 11:23:56 | 显示全部楼层
UDF可用,我这里测试过ORACLE10G的哈
 楼主| 发表于 2011-8-3 12:25:48 | 显示全部楼层
回复 11# menfan1


    udf 的哪一个函数啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 02:43 , Processed in 0.081623 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表