[ahk]读取excel文件实例

本文介绍如何利用AutoHotkey脚本实现Excel文件的自动读取与界面展示功能,包括检测Excel文件状态、获取指定区域的数据并创建图形界面显示等步骤。

EXCEL内容如下:

AutoHotkey代码如下:


#Persistent

#SingleInstance,force
;2015年1月4日
;sunwind
;读取excel实例
excel :=   ComObjActive("Excel.Application")
filepath:=A_ScriptDir . "\循环读取.xlsx"

;自动运行、初始化
Run notepad
xls:=Check(filepath,excel)  ;检测是否打开了xlsx文件
if (xls="") ;未打开则打开
{
    InputBox,_filepath,请打开相应Excel文件!,请输入xls路径,,300,200,,,,15,%filepath%
    if ErrorLevel
        ExitApp
    else
        RunWait %_filepath%
    ;持续等待,直到打开
    loop
    {
        xls:=Check(filepath,excel)
        ToolTip  等待excel启动完成
        Sleep,500
        if a_index>5
            MsgBox 等待太长时间了,请检查下。
    }until  IsObject(xls)
}
ToolTip
TrayTip ,,已就绪

;~ 若获取A2:B30区域值,实例如下:
r=30
arr := excel.Range["A2:B" r].value
;~ MsgBox % arr.MaxIndex(1)   ; total rows
;~ MsgBox % arr.MaxIndex(2)   ; total columns

; 创建图形界面
Gui, Add, ListView, r30 w180 gMyListView, 日期|报表名称
Loop, % arr.MaxIndex(1)
    {
        i:=A_Index
        LV_Add("", arr[i,1],arr[i,2])
    }
LV_ModifyCol()  ; 根据内容自动调整每列的大小.

Gui, Show
Gui,+AlwaysOnTop
return

MyListView:
if A_GuiEvent = DoubleClick
{
    LV_GetText(RowText, A_EventInfo,2)  ; 从行的第2个字段中获取文本.
    ToolTip You double-clicked row number %A_EventInfo%. Text: "%RowText%"
    ControlSend,Edit1,%RowText%,无标题
    ControlSend,Edit1,`n,无标题
}
return

GuiClose:  ; 表示当窗口关闭时脚本应自动退出.
ExitApp

;辅助函数
Check(filepath,oExcel)
{
    for Item in oExcel.workbooks
    {
        ;Name 文件名 FullName路径名
       ;~ data .=   "Name:`t"oexcel.workbooks(A_index).FullName  "`n"
       IF (oexcel.workbooks(A_index).FullName=filepath)
            xls:=item
    }
if IsObject(xls)
    return xls
else
    return ""
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liuyukuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值