找回密码
 加入
搜索
查看: 1696|回复: 7

[AU3基础] 把一个很大的数组写入CSV文档里[已解决]

  [复制链接]
发表于 2017-3-28 13:15:21 | 显示全部楼层 |阅读模式
本帖最后由 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")
 楼主| 发表于 2017-3-28 14:32:28 | 显示全部楼层
很奇怪,  单独测试有没有什么事情,如果在主代码里 经过一系列处理后,再写入就有问题。

#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)
发表于 2017-3-28 17:29:58 | 显示全部楼层
写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

评分

参与人数 1金钱 +10 收起 理由
heroxianf + 10 可以处理~THX~

查看全部评分

 楼主| 发表于 2017-3-29 11:43:38 | 显示全部楼层
回复 3# tubaba


    如果文档里有各种符号呢,比如单引号、双引号之类的。可以这样操作?
发表于 2017-3-29 16:58:39 | 显示全部楼层
回复 1# heroxianf

测试1000行

本帖子中包含更多资源

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

×
 楼主| 发表于 2017-3-29 20:06:10 | 显示全部楼层
回复 5# chzj589

单独测试没问题   我再看看长时间用会不会有问题。
发表于 2017-3-30 15:33:00 | 显示全部楼层
5000数据啊
用excel vba 写应该效率更快
发表于 2017-4-2 19:54:08 | 显示全部楼层
不错,值得学习
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-25 03:35 , Processed in 0.088363 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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