;用AHK_L原生的com处理excel实例2: ;对当前打开的excel文件处理。 ;前提是先打开一个Excel文件。 ;作者: sunwind ;博客: http://blog.csdn.net/liuyukuan ;~ #include COM.ahk ;~ #include ADO_AccessDataBaseFunctions.ahk sDbFile:=A_scriptdir . "畅听卡查询结果.accdb" ;~ sDbFile:=A_scriptdir . "畅听卡查询结果.mdb" ;~ MsgBox % sDbFile /* SQL:= "SELECT 卡号,服务号码 FROM 畅听卡查询结果 WHERE 服务号码=13051300154" ; SQL查询语句 ;~ SELECT 畅听卡查询结果.卡号, 畅听卡查询结果.服务号码 ;~ FROM 畅听卡查询结果 ;~ WHERE (((畅听卡查询结果.服务号码)=13051300154)); MsgBox % ADO_Read(SQL, sDbFile, sNames=0) */ ;~ INSERT INTO Fox(foxsaid, foxread) VALUES ('天啊', '地啊') ; 添加数据 ;~ update email set unsubscribed=1 where email='hehe@163.com' ; 修改数据 ;~ delete from book_novel where NovelID='000158' ; 删除数据 /* ;~ 添加数据 SQL:="INSERT INTO [index] ( 卡号, 序号, 总数 ) VALUES ('天啊', '地啊','人啊')" MsgBox % ADO_Write(SQL, sDbFile) */ excel := ComObjActive("Excel.Application") ; 创建Excel 对象 workBook := excel.ActiveWorkbook ; 当前工作簿 currentSheet := excel.ActiveSheet ; 当前工作表 ;~ cell := excel.ActiveCell ; 当前单元格 ;~ cell.Value := "Hello World" ; 将当前单元格赋值 ;激活sheet2 ;~ sheet := workBook.Worksheets[2] ; 第二个工作表 ;~ sheet.Activate() ;~ 若获取B2:C110区域值,实例如下: r1=2 r2=r1+500 SArr := excel.Range["A" r1 ":A" r2].value FileAppend,%SArr%,D:ABC%R1%--%R2%.TXT r1=r2 MsgBox % SArr.MaxIndex(1) ; total rows MsgBox % SArr.MaxIndex(2) ; total columns Loop % SArr.MaxIndex(1) ;行数 { CurRowNum := A_Index /* Loop % SArr.MaxIndex(2) ;列数 { MsgBox % SArr[CurRowNum, A_Index] } */ xianghao:=SArr[CurRowNum, 1] MsgBox %xianghao% ;~ kahao1:=SArr[CurRowNum, 2] ;~ kahao2:=SArr[CurRowNum, 3] ;~ shuliang:=SArr[CurRowNum, 4] ;~ Loop,%shuliang% ;~ { ;~ xuhao := A_Index ;~ kahao:=kahao1+A_Index-1 ;~ SQL:="INSERT INTO [index] ( 箱号,卡号, 序号, 数量) VALUES (" . xianghao . "," . kahao . "," . A_Index . "," . shuliang . ")" ;~ ADO_Write(SQL, sDbFile) ;~ } ;~ MsgBox NEXT LINE } excel.Exist return