首页 > 其他分享 >[ahk]读取excel文件实例

[ahk]读取excel文件实例

时间:2023-04-25 12:00:54浏览次数:53  
标签:arr return 读取 filepath ahk excel xls Check


EXCEL内容如下:

[ahk]读取excel文件实例_App

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 "" 

 }


标签:arr,return,读取,filepath,ahk,excel,xls,Check
From: https://blog.51cto.com/u_15408625/6223731

相关文章

  • [AHK]精确计时到秒
    DllCall("QueryPerformanceFrequency","Int64*",QuadPart)DllCall("QueryPerformanceCounter","Int64*",CounterBefore)Sleep1000DllCall("QueryPerformanceCounter","Int64*",CounterAfter)MsgBox%......
  • 【ahk】为QQ增加激活主面板的热键
    本脚本只是实现了热键激活不在前台的QQ主面板,并不是热键打开主面板。使用方法:先手动打开QQ主面板,并且不要最小化,然后运行本脚本,此脚本会探测到主面板的id,然后绑定热键win+z来用于激活动作。/*为QQ增加热键这个脚本前提是,你要激活的窗口需要事先打开的(且主面板不能最小化)。然后......
  • [AHK]为通达信增加打开关闭交易窗口的功能热键
    用文华财经习惯用空格呼叫出交易界面,通达信软件(招商证券)没有相应热键,便用AutoHotkey来帮它定义一个。#Persistent#SingleInstanceForceControl:="AfxWnd424"#IfWinActiveahk_classTdxW_MainFrame_ClassSpace::ControlClick,%Control%,,,,,NA#If华泰是426......
  • java中使用RedisTemplate读取数据异常 Missing type id when trying to resolve subt
    java中使用RedisTemplate读取数据异常Missingtypeidwhentryingtoresolvesubtypeof[simpletype,classjava.lang.Object]:missingtypeidproperty'@class'at[Source:(byte[])"报错:Causedby:com.fasterxml.jackson.databind.exc.InvalidTypeIdExcep......
  • 浏览器4行js代码自动读取IC卡号
    BS架构软件集成IC卡读卡器,在前段只需要4行js代码即可实现自动读取IC卡卡号,在web上使用IC卡读卡器其实就是这么简单.首先安装友我IC卡读卡器web插件,这个web插件安装后之后goole浏览器,火狐,IE等浏览器,然后插上IC卡读卡器YW-607HC,然后开始敲js代码了.引入相应的js后,开始寻卡......
  • 读取配置文件
    Class类中的InputStreamgetResourceAsStream(Stringname):查找具有给定名称的资源。用于搜索与给定类相关联的资源的规则由类的定义类加载器实现。此方法委托给该对象的类加载器。如果此对象由引导类加载器加载,则该方法委托到ClassLoader.getSystemResourceAsStream(java.lang.......
  • 电力系统潮流计算matlab仿真,计算结果自动保存到excel文件中
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要在电力工程中,“潮流”还特指电网各处电压(包括幅值与相角)、有功功率、无功功率等的分布。潮流的分布是运行调度单位和维修部门所必须知道的事项。而潮流计算,是指给定电网中一些参数、已知值和未知值中假设的初始......
  • 电力系统潮流计算matlab仿真,计算结果自动保存到excel文件中
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要       在电力工程中,“潮流”还特指电网各处电压(包括幅值与相角)、有功功率、无功功率等的分布。潮流的分布是运行调度单位和维修部门所必须知道的事项。       而潮流计算,是指给定电网中一......
  • [ahk]修改Access表格的字段名
    修改Access字段名有两中方法:【方法1】利用adox对象MicrosoftADOExt.forDDLandSecurity(ADOX)ADOX除了提供管理安全性所需的对象之外,还提供了新建数据库及其所含对象所需的“数据定义语言(DDL)”对象。用ADOX创建数据库:;CreateadatabaseusingADOXoCatalog:=ComO......
  • [AHK]打开同花顺委托下单窗口在同花顺(v8.60.13) 试验可用
    DetectHiddenWindows,onSetTitleMatchMode,Fast;主程序IfWinExist,ahk_class#32770ahk_exexiadan.exe ToolTip,找到下单窗口else{ open_xiadan() loop{ Sleep,1000 ifA_index>20 { MsgBox下单窗口呼叫失败 break } }UntilWinExist(ahk_class......