找回密码
 加入
搜索
楼主: heroxianf

[AU3基础] 关于EXCEL数据拆分问题[已解决]

  [复制链接]
发表于 2015-11-24 23:12:23 | 显示全部楼层
本帖最后由 dhlhmgc 于 2015-11-24 23:14 编辑

我也来一个,用ADO方式读取 与 Excel Open方式 读取比较,哈哈,献丑了。相比之下,ADO虽有缺点,但速度要稍快一些
#include <Excel.au3>
#include <Array.au3>

$begin = TimerInit()
Dim $Cn1 = ObjCreate("Adodb.Connection")
Dim $Rs1 = ObjCreate("Adodb.Recordset")
With $Cn1
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .Properties("Extended Properties") = "Excel 8.0;HDR=No;IMEX=1"
    .Properties("Data Source") = @ScriptDir & "\1.xls"
    .CursorLocation = 3                ;//adUseClient = 3
    .Open
EndWith
dim $arr
$Rs1 = $Cn1.ExeCute("SELECT * FROM [888$] WHERE LEN(F1)>0")
if not ($rs1.EOF AND $rs1.BOF) Then
        $arr = $rs1.GetRows()
Endif
$rs1.close
$cn1.close
$dif = StringFormat("ado读取耗费时间[%.4f]秒,读取记录[%u]条",TimerDiff($begin)/1000, ubound($arr) )
_ArrayDisplay($arr, $dif )
#include <Excel.au3>
#include <Array.au3>
DIM  $eExcelArray
$begin =TimerInit()
$eExcel = _ExcelBookOpen(@ScriptDir&"\1.XLS",0,True) ;打開EXCEL表
With $eExcel.ActiveSheet ;Worksheets("")  如果要用工作表名稱 就改成這邊
     $eExcelArray= .range("a1").currentregion.value        ;第一行讀取
   $eExcelArray= .application.transpose($eExcelArray) ;行列互換
   ;.parent.close(false) ;讀取完畢後 把頁面關掉的
EndWith
_ExcelBookClose($eExcel, 0, 0)
$eExcel=0
$dif = StringFormat("ExcelOpen耗费时间[%.4f]秒,读取记录[%u]条",TimerDiff($begin)/1000, ubound($eExcelArray) )
_ArrayDisplay($eExcelArray, $dif )

本帖子中包含更多资源

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

×
发表于 2015-11-25 07:14:00 | 显示全部楼层
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-28 22:20 , Processed in 0.083485 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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