找回密码
 加入
搜索
楼主: xwt620

[AU3基础] 读取EXCEL中的人名,统计重复人名的数量,记录在二维数组里【已解决】

 火.. [复制链接]
发表于 2011-8-8 15:46:38 | 显示全部楼层
#include <Array.au3>

Local $sFilepath = "d:\rm.xls"
Local $oExcel = ObjGet($sFilepath)
Local $aName[1][1]

If @error = 1 Then
        MsgBox(0, "错误!", "无法创建对象!")
        Exit
ElseIf @error = 2 Then
        MsgBox(0, "错误!", "文件不存在!")
        Exit
EndIf

$o_Dic = ObjCreate("scripting.dictionary")
With $oExcel.activesheet
        For $o_Rng In .range("a2", .cells(.rows.count, 1).end(3))
                If $o_Dic.exists($o_Rng.value) Then
                        $o_Dic($o_Rng.value) = $o_Dic($o_Rng.value) + 1
                Else
                        $o_Dic($o_Rng.value)=1
                EndIf
        Next
EndWith
$oExcel.close(false)
ReDim $aName[$o_Dic.count][2]
$a_Arr=$o_Dic.keys
   For $i=0 To UBound($a_Arr)-1
        $aName[$i][0] = $a_Arr[$i]
        $aName[$i][1] = $o_Dic($a_Arr[$i])
   Next
_ArrayDisplay($aName)
这个可以了
发表于 2012-8-4 19:27:19 | 显示全部楼层
如果我要跟多个条件怎么改?
发表于 2012-8-4 19:42:12 | 显示全部楼层
学习心态来学习下 前辈的经验
发表于 2012-8-4 19:42:22 | 显示全部楼层
学习心态来学习下 前辈的经验              
发表于 2014-8-11 17:32:59 | 显示全部楼层

想問高手, 以您這個為例, 我如果左邊的excel表要變成右邊這樣, 該怎麼做呢? 就是...
甲: a, b, c, d
乙: e, f
丙: g, h
丁: j  
要變成右邊的歸類好的樣子, 是否可以辦到呢? 謝謝謝謝

本帖子中包含更多资源

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

×
发表于 2014-8-11 19:36:29 | 显示全部楼层
没有看明白啊
发表于 2014-8-12 09:19:24 | 显示全部楼层
簡單的說, 就是讀出
甲有 a, b, c, d
乙有 e, f
丙有 g, h
丁有 j
发表于 2014-8-12 16:45:16 | 显示全部楼层
本帖最后由 kevinch 于 2014-8-12 17:07 编辑

回复 22# ipmitool
可以处理,方法有点另类,你用下面代码试下,源文档命名为test.xls放到程序目录下
$oexcel=ObjGet(@ScriptDir&"\test.xls")
$arr=$oexcel.activesheet.usedrange.value
$oexcel.close(False)
If IsArray($arr) Then
        $dic=ObjCreate("scripting.dictionary")
        $dic2=ObjCreate("scripting.dictionary")
        For $n=0 To UBound($arr,2)-1
                If $dic.exists($arr[0][$n]) Then
                        $dic($arr[0][$n])=$dic($arr[0][$n])&"<td>"&$arr[1][$n]&"</td>"
                        $dic2($arr[0][$n])=$dic2($arr[0][$n])+1
                Else
                        $dic($arr[0][$n])="<td>"&$arr[1][$n]&"</td>"
                        $dic2($arr[0][$n])=1
                EndIf
        Next
        $str="<table><tr><td>"&$dic.count&"</td><td>"&UBound($arr,2)&"</td></tr>"
        $arr=$dic.keys
        For $n=0 To UBound($arr)-1
                $str&="<tr><td>"&$arr[$n]&"</td><td>"&$dic2($arr[$n])&"</td>"&StringRegExpReplace($dic($arr[$n]),"(?is)(<\/td\>[\s\S]*?\<\/td\>[\s\S]*?\<\/td\>)","$1</tr><tr><td></td><td></td>")&"</tr>"
        Next
        $str&="</table>"
        $oexcel=ObjCreate("excel.application")
        $oexcel.visible=True
        $wb=$oexcel.workbooks.add
        With $wb.activesheet
                ClipPut($str)
                .paste(.range("a1"))
        EndWith
EndIf
发表于 2014-8-13 08:10:17 | 显示全部楼层
天啊, 太屌了吧, 好強喔~~謝謝你!
发表于 2014-8-13 11:24:16 | 显示全部楼层
不過...我真的看不懂高手的思維...能不能幫忙加註解啊?~呵呵...
发表于 2014-12-22 14:26:54 | 显示全部楼层
学习了,感谢分享,收藏下
发表于 2014-12-24 19:35:14 | 显示全部楼层
[AU3基础] 读取EXCEL中的人名,统计重复人名的数量,记录在二维数组里【已解决】
发表于 2015-1-6 06:56:18 | 显示全部楼层
哈哈,过来看看
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 12:31 , Processed in 0.083263 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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