把一个很大的数组写入CSV文档里[已解决]
本帖最后由 heroxianf 于 2017-4-2 23:48 编辑下面是从一个txt文本里读取数据到数组,如果超过5000行,这个数组是写不完的,一直卡着,希望坛友帮忙解决一下。
_FileReadToArray($File_name, $Txt_Array, Default, "|")
_ArrayDisplay($Txt_Array)
_Excel_RangeWrite($oWordbook, $oWordbook.ActiveSheet, $Txt_Array, "C1") 很奇怪,单独测试有没有什么事情,如果在主代码里 经过一系列处理后,再写入就有问题。
#include <Excel.au3>
#include <File.au3>
#include <Array.au3>
Local $Txt_Array
Local $TXT = @ScriptDir & "\test.txt"
Local $File = @ScriptDir & "\11.csv"
Local $oExcel = _Excel_Open(True, True)
Local $oWordbook = _Excel_BookOpen($oExcel, $File)
_FileReadToArray($TXT, $Txt_Array, Default, "|")
_ArrayDisplay($Txt_Array)
_Excel_RangeWrite($oWordbook, $oWordbook.ActiveSheet, $Txt_Array, "C1")
_Excel_BookSave($oWordbook) 写CSV用得着EXCEL吗?
Func _SaveToCsv($aArray, $sCsvSavePath)
Local $array = $aArray
Local $csv = FileOpen($sCsvSavePath, 2 + 8)
If UBound($aArray, 0) = 1 Then
For $i = 0 To UBound($aArray) - 1
Next
ElseIf UBound($aArray, 0) = 2 Then
For $i = 0 To UBound($aArray, 1) - 1
Local $sStr = ''
For $j = 0 To UBound($aArray, 2) - 1
$sStr &= '"' & StringReplace($aArray[$i][$j], '"', '""') & '",'
Next
$sStr = StringTrimRight($sStr, 1)
FileWriteLine($csv, $sStr)
Next
EndIf
FileClose($csv)
EndFunc ;==>_SaveToCsv 回复 3# tubaba
如果文档里有各种符号呢,比如单引号、双引号之类的。可以这样操作? 回复 1# heroxianf
测试1000行
回复 5# chzj589
单独测试没问题 我再看看长时间用会不会有问题。 5000数据啊
用excel vba 写应该效率更快
{:face (456):} 不错,值得学习
页:
[1]