SQLite导出到Excel 希望大家指点一下数组的存取问题[已解决]
本帖最后由 heroxianf 于 2016-11-16 01:09 编辑笨办法整出来了,懂的指点一下。这样写 以后添加列 累死个屁的。{:face (197):}
_SQLite_Query($test, "SELECT * FROM Monitor;", $hQuery)
While _SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "A" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "B" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "C" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "D" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "E" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "F" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "G" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "H" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "I" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "J" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "K" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "L" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "M" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "N" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "O" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "P" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "Q" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "R" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "S" & $i)
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRow, "T" & $i)
$i = $i + 1
WEnd http://www.autoitx.com/thread-53860-1-1.html
这是之前解决的讨论。 本帖最后由 kk_lee69 于 2016-11-15 11:10 编辑
回复 2# heroxianf
提供個 已經有寫入資料的 SQLLITE DB 檔案
與 你寫一半的範例程式 本帖最后由 heroxianf 于 2016-11-15 16:39 编辑
回复 3# kk_lee69
谢谢KK 指点先。附件是代码和sqlite.dll 数据库文件,你帮我看看,其实实际要导出的字段很多 有没有优化输出数据排列的必要。我用的是新版EXCEL.UDF
回复 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)
回复 4# heroxianf
不改資料庫 還要用SQLITE 就得安裝 SQLite ODBC Driver 了 ,才可以使用 GETROWS 回复 5# kk_lee69
兄弟,又教了一招!{:face (361):} 本帖最后由 heroxianf 于 2016-11-15 22:20 编辑
回复 6# kk_lee69
安装后sqlite怎么写呢?
回复 7# chzj589
学到经典,你的分享一点啥。{:face (197):} 回复 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 * FROMDATAtest").GetRows
_ArrayDisplay($A)
回复 10# kk_lee69
太谢谢了,我以为装了驱动还是SQLITE的语法。 方便了哈。 回复 10# kk_lee69
安装了驱动还是提示错误,怎么排查呢?
"C:\Users\liuxianfeng1\Desktop\test.au3" (10) : ==> ??????????.:
$conn.Open ("Driver=SQLite3 ODBC Driver;database="&$DBPATH)
$conn^ ERROR 回复 12# heroxianf
http://www.ch-werner.de/sqliteodbc/
自己找合適自己的版本我的 提供的 可用於XP 回复 13# kk_lee69
谢谢,搞定了,64位系统必须装64版本的。装32没效果。
页:
[1]