一个excel文件,有N行14列,请查看附件中的excel
一个INI文件,请查看附件中的INI
现在的目的是想把INI中的结果导入到excel的第3列中,为了保证不蹿行。所以就想先比对下ini的和excel第一列的内容是否一样,如果一样才将结果写入excel
以下是我的代码,效率太差了。内容少的时候还不觉得,内容上W以后比蜗牛还慢。请大家帮忙看能不能优化一下,谢谢了
#include <Excel.au3>
#include <File.au3>
#include <ie.au3>
#include <array.au3>
#include <winapi.au3>
#include <_Ini.au3>
_initoexcel()
Func _initoexcel()
$weizzz = _IniReadSection('结果.ini', '结果')
_arraydisplay ($weizzz)
$oExcel = _ExcelBookOpen(@ScriptDir & '\test.xlsx', 1)
If Not @error Then
$oExcelline = $oExcel.activesheet.usedrange.rows.count
$arr1 = $oExcel.activesheet.range("a1").resize($oExcelline, 14).value ;
$arr2 = $arr1
$ddf = 1
For $xc = 1 To $weizzz[0][0]
For $i = 0 To $oExcelline - $ddf
If $weizzz[$xc][0] = $arr1[0][$i] Then
$arr2[2][$i] = $weizzz[$xc][1]
ExitLoop
EndIf
Next
Next
$oExcel.activesheet.range("a1").resize($oExcelline, 14).value = $arr2
EndIf
_ExcelBookClose($oExcel, 1, 0) ;在没有任何提示的情况下保存并关闭工作表, 可选参数:0 = 不提示(默认值), 1 = 提示
ProcessClose('Excel.exe')
EndFunc ;==>_initoexcel
附件中包含所需的文件,请下载查看详情
|