liupeng1990607 发表于 2013-3-25 14:24:27

如何把数组 快速写入excel表中!!!!!!

如何把$array二维数组 快速写入到excel表中,
用_ExcelWriteSheetFromArray 写入太慢了!!!!
请给个具体方法!!谢谢 最好能附上源码
THANK!!!!!!!!!

h20040606 发表于 2013-3-25 15:27:58

请参阅
http://www.autoitx.com/forum.php?mod=viewthread&tid=20017&highlight=%5C_ExcelWriteSheetFromArray%2B

骗子 发表于 2013-3-25 16:17:39

http://www.autoitx.com/thread-34291-1-1.html

骗子 发表于 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
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
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里,速度极快。

kevinch 发表于 2013-3-30 10:22:29

单元格区域.value=数组
这样就行了,需要注意的是行和列与excel是反的
页: [1]
查看完整版本: 如何把数组 快速写入excel表中!!!!!!