为什么用io不用com对象
不用装软件,无需环境
能做啥,不能做啥
简单向excel格式的文件读写数据.不能执行复杂的类似com对象能实现的东西
需不需要用
如果只是简单的写数据需求,完全可以用这个完成
关于本文
本文基于ahk群看到的一个例子,在例子的基础上添加注释,希望各位少走弯路,都能轻松学会
一个创建新xlsx的例子
#Include ExcelIO.ahk
;这是新建表格的处理可以看做新建表,新建sheet
book := ExcelIO.New("xlsx"), sheet := book.addSheet("测试报告")
book.setCalcMode("0")
;表格的写入就是类似数组的写法,比如下面就是类似range("d6"),同样加引号
SHeet.__item["D6"] :="1"
SHeet.__item["D6"] :=""
SHeet.__item["D6"].width := "60" ;列表宽度
sheet.__item["a6"] := {bool:false} ;这个是写入布尔值的,如果是字符串看下面
sheet.__item["a7"] := "false" ;写入字符串,都是这么简单
;MsgBox % SHeet.__item["D6"].Value ;值
;MsgBox % SHeet.__item["D6"].width ;值
;下面是添加富文本的,我觉得不是刚需,老哥需要的话可以研究一下
rs1 := book.addRichString()
ff1 := rs1.addFont(),ff1.setColor(2),ff1.setSize(20),rs1.addText("我", ff1)
ff2 := rs1.addFont(),ff2.setColor(3),ff2.setSize(28),rs1.addText("爱", ff2)
ff3 := rs1.addFont(),ff3.setColor(4),ff3.setSize(12),rs1.addText("AHK", ff3)
SHeet.__item["D2"]:= rs1
FileCreateDir,%A_YYYY%%A_MM%%A_DD% ;创建文件夹。以年月日为名
ss=4
;最后类似的,还是要有一个保存函数才能写入的
book.save(A_YYYY A_MM A_DD "\" "" ss ".xlsx") ;保存到年月日文件夹里
book := ""
读取xlsx的例子
#Include ExcelIO.ahk
;先读表再读sheet
book := ExcelIO.Load("2.xlsx"), sheet := book.getSheet("0")
;接下来就是读写,涉及写入要保存
MsgBox % SHeet.__item["A1"].Value ;值
SHeet.__item["A1"]:="你你你"
MsgBox % SHeet.__item["A1"].Value ;值
;MsgBox % SHeet.__item["D6"].width ;值
book.save("2.xlsx") ;保存到年月日文件夹里
例子文件可以在ahk群下载,本文仅作为指引,下一篇文章讲一讲我个人查阅了库后的一些理解
非常感谢本文作者分享如此精彩的实例源代码。 读写Excel电子表格我比较喜欢用Delphi和Visual Basic 6.0(SP6) 我推荐用 Embarcadero.Delphi.11.0.v28.Lite.v17.0 连接和访问Access数据库文件(.mdb) 并实时自动同步导出到Excel电子表格文件。所有数据保存在mdb数据库中,导出的Excel表格(.xlsx)文件只是副本,只用于查看数据