找回密码
 加入
搜索
查看: 3117|回复: 13

[效率算法] SQLite导出到Excel 希望大家指点一下数组的存取问题[已解决]

  [复制链接]
发表于 2016-11-15 00:30:04 | 显示全部楼层 |阅读模式
本帖最后由 heroxianf 于 2016-11-16 01:09 编辑

笨办法整出来了,懂的  指点一下。这样写 以后添加列 累死个屁的。

_SQLite_Query($test, "SELECT * FROM Monitor;", $hQuery)
While _SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[0], "A" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[1], "B" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[2], "C" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[3], "D" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[4], "E" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[5], "F" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[6], "G" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[7], "H" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[8], "I" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[9], "J" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[10], "K" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[11], "L" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[12], "M" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[13], "N" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[14], "O" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[15], "P" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[16], "Q" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[17], "R" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[18], "S" & $i)
                _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow[19], "T" & $i)

                $i = $i + 1
WEnd
 楼主| 发表于 2016-11-15 00:30:37 | 显示全部楼层
http://www.autoitx.com/thread-53860-1-1.html

这是之前解决的讨论。
发表于 2016-11-15 09:47:26 | 显示全部楼层
本帖最后由 kk_lee69 于 2016-11-15 11:10 编辑

回复 2# heroxianf

提供個 已經有寫入資料的 SQLLITE DB 檔案
與 你寫一半的範例程式
 楼主| 发表于 2016-11-15 16:33:11 | 显示全部楼层
本帖最后由 heroxianf 于 2016-11-15 16:39 编辑

回复 3# kk_lee69

谢谢KK 指点先。附件是代码和sqlite.dll 数据库文件,你帮我看看,其实实际要导出的字段很多   有没有优化输出数据排列的必要。我用的是新版EXCEL.UDF

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-11-15 17:36:07 | 显示全部楼层
回复 4# heroxianf

換資料庫吧   你測試看看   改用MDB  一行語法 就結束 ............我連資料庫裡有甚麼欄位 名稱 都可以不用了解   

#include <Excel.au3>
#include <Array.au3>
Local $DBPATH = @ScriptDir & '\1.mdb'


$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")
$conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&$DBPATH)
$RS.ActiveConnection = $conn;好像是主連接,這個好像比較重要

$A=$conn.Execute(" SELECT * FROM A1").GetRows

_ArrayDisplay($A)



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-11-15 18:09:40 | 显示全部楼层
回复 4# heroxianf
不改資料庫 還要用SQLITE 就得  安裝 SQLite ODBC Driver 了 ,才可以使用 GETROWS
发表于 2016-11-15 18:51:57 | 显示全部楼层
回复 5# kk_lee69

兄弟,又教了一招!
 楼主| 发表于 2016-11-15 20:58:55 | 显示全部楼层
本帖最后由 heroxianf 于 2016-11-15 22:20 编辑

回复 6# kk_lee69


    安装后  sqlite怎么写呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2016-11-15 22:28:28 | 显示全部楼层
回复 7# chzj589


    学到经典,你的分享一点啥。
发表于 2016-11-16 00:57:33 | 显示全部楼层
回复 9# heroxianf

一樣的寫法  參考看看吧   把我的  使用你提供給我的檔案

附上 ODBC 驅動

#include <Excel.au3>
#include <Array.au3>


Local $DBPATH = @ScriptDir & '\test.DB'


$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")
$conn.Open ("Driver=SQLite3 ODBC Driver;database="&$DBPATH)

$RS.ActiveConnection = $conn;好像是主連接,這個好像比較重要

$A=$conn.Execute(" SELECT * FROM  DATAtest").GetRows
_ArrayDisplay($A)




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2016-11-16 01:09:24 | 显示全部楼层
回复 10# kk_lee69


    太谢谢了,我以为装了驱动还是SQLITE的语法。   方便了哈。
 楼主| 发表于 2016-11-16 14:05:54 | 显示全部楼层
回复 10# kk_lee69


    安装了驱动还是提示错误,怎么排查呢?

"C:\Users\liuxianfeng1\Desktop\test.au3" (10) : ==> ??????????.:
$conn.Open ("Driver=SQLite3 ODBC Driver;database="&$DBPATH)
$conn^ ERROR
发表于 2016-11-16 16:17:52 | 显示全部楼层
回复 12# heroxianf

http://www.ch-werner.de/sqliteodbc/

自己找合適自己的版本  我的 提供的 可用於XP
 楼主| 发表于 2016-11-16 21:20:39 | 显示全部楼层
回复 13# kk_lee69


    谢谢,搞定了,64位系统必须装64版本的。装32没效果。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-25 14:47 , Processed in 0.079995 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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