找回密码
 加入
搜索
查看: 7816|回复: 5

[系统综合] 如何把数组 快速写入excel表中!!!!!!

  [复制链接]
发表于 2013-3-25 14:24:27 | 显示全部楼层 |阅读模式
如何把$array二维数组 快速写入到excel表中,
用_ExcelWriteSheetFromArray 写入太慢了!!!!
请给个具体方法!!谢谢 最好能附上源码
THANK!!!!!!!!!
发表于 2013-3-25 15:27:58 | 显示全部楼层
发表于 2013-3-25 16:17:39 | 显示全部楼层
发表于 2013-3-25 16:18:15 | 显示全部楼层
#include <Excel.au3>
#include <array.au3>
$oExcel = _ExcelBookNew()
example1()
example2()
example3()
Func example1()
$begin = TimerInit()
For $j = 1 To 10 ;列
        For $i = 1 To 100 ;行
                $filename1 = $i & ',' & $j
                _ExcelWriteCell($oExcel, $filename1, $i, $j)
        Next
Next
$dif = TimerDiff($begin)
MsgBox(0, 0, '处理1000行用时:' & $dif & '毫秒')
EndFunc
Func example2()
$begin1 = TimerInit()
Local $aArray[100][10]
For $i = 0 To 99
        For $j = 0 To 9
                $aArray[$i][$j] = $i + 1 & ',' & $j + 1
        Next
;~      _ExcelWriteSheetFromArray($oExcel, $aArray, $i, 1, 0, 0) ;基于 0 开始的数组参数
Next
;~ _ArrayDisplay($aArray)
_ExcelWriteSheetFromArray($oExcel, $aArray, 1, 1, 0, 0) ;基于 0 开始的数组参数
$dif1 = TimerDiff($begin1)
MsgBox(0, '处理1000行用时:' & $dif1 & '毫秒', '处理1000行用时:' & $dif1 & '毫秒')
EndFunc
Func example3()
$begin = TimerInit()
Dim $e_a[10][100]
For $i=0 To 99
        For $j=0 To 9
                $e_a[$j][$i] = '行' & $i & ',列' & $j
        Next
Next
$oExcel.activesheet.range("A1:J100").value = $e_a ; 使用上面的数字来 填写表格内容
$dif = TimerDiff($begin)
MsgBox(0, 0, '处理1000行用时:' & $dif & '毫秒', 1)
EndFunc
发表于 2013-3-30 09:24:08 | 显示全部楼层
先写入粘贴板,再粘贴到EXCEL里,速度极快。
发表于 2013-3-30 10:22:29 | 显示全部楼层
单元格区域.value=数组
这样就行了,需要注意的是行和列与excel是反的
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 05:54 , Processed in 0.075374 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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