这是奔跑的键盘侠的第169篇文章
作者|我是奔跑的键盘侠
来源|奔跑的键盘侠(ID:runningkeyboardhero)
转载请联系授权(微信ID:ctwott)
去年有写过一篇按键精灵关于excel操作的帖子,很多小伙伴觉得不过瘾,而且按键自带的office插件命令少的可怜。
没关系,今天我们再深入一下,讲讲懒人办公插件,可能很多人会对插件一脸茫然。Don't be nervous! Just so so.
插件的实现原理我们不需要关心,只需要去资源库下载安装一下,就可以直接使用了,操作起来非常友好。
今天要讲的这款懒人办公插件,还是非常好用的,里面集成了N多excel和word常用操作命令,解决office常用操作完全不在话下。
1
如何使用第三方插件
首先打开按键精灵,新建一个脚本,再主界面上方,有个按钮“资源库”,点进去,可以看到很多资源,大概浏览一下,就找到了懒人办公插件(底部的位置)。
找到懒人办公插件之后,点击右侧的导入按钮,接着就会收到提示“导入成功”,大功告成。
然后关闭“资源库”,切换到“全部命令”——“插件命令”,就可以看到懒人办公插件,里面密密麻麻的各种命令。
别看命令一大堆,给人一种天然屏障的感觉,其实每个命令用法都极为简单,为便于大家对命令有些了解,知道懒人办公插件都可以实现哪些操作,我对目录中的命令分excel和word分别进行了整理,看一下命令名称,就可以知道一个大概。
2
EXCEL操作部分命令整理
命令名称: | lxj_ExcelOpen 打开EXCEL文档 |
---|---|
命令功能: | 打开EXCEL文档 |
命令参数: | 【参数1】 EXCEL完整路径 |
【参数2(可选)】 打开方法,0不可见,1为可见。默认为0 | |
返回值: | 索引值,本插件对多个EXCEL进行操作时需要。索引值为从1开始计数的正整数 |
命令名称: | lxj_ExcelHwnd 获取EXCEL窗口句柄 |
---|---|
命令名称: | lxj_ExcelLastR 获取EXCEL总行数 |
命令名称: | lxj_ExcelLastC 获取EXCEL总列数 |
命令名称: | lxj_ExcelRead 读取单元格内容 |
命令名称: | lxj_ExcelWrite 写入单元格内容 |
命令名称: | lxj_ExcelReadEX 读取区域内容 |
命令名称: | lxj_ExcelWriteEX 写入区域内容 |
命令名称: | lxj_SheetIndex 获取当前标签索引号 |
命令名称: | lxj_SheetCount 统计工作表标签总数 |
命令名称: | lxj_SheetAdd 增加一个工作标签 |
命令名称: | lxj_SheetName 获取标签名称 |
命令名称: | lxj_SheetRename 重命名标签 |
命令名称: | lxj_SheetDel 删除一个工作标签 |
命令名称: | lxj_ExcelCells EXCEL全表操作 |
命令名称: | lxj_ExcelRange EXCEL区域操作 |
命令名称: | lxj_ExcelRows EXCEL行操作 |
命令名称: | lxj_ExcelColumns EXCEL列操作 |
命令名称: | lxj_ExcelLinks 添加超级链接 |
命令名称: | lxj_CopyTo EXCEL数据复制至 |
命令名称: | lxj_ExcelProtect 设置EXCEL文档密码 |
命令名称: | lxj_ExcelSaveAs EXCEL文档另存为 |
命令名称: | lxj_ExcelSave 保存EXCEL文档 |
命令名称: | lxj_ExcelClose 关闭EXCEL文档 |
下面贴一个插件中自带的代码示例(有删改):
path="D:\测试.xlsx"
index = Plugin.lxj_Office.lxj_ExcelOpen(path, 1)
Delay 1000
//统计EXCEL共有多少标签页,无参数
i=Plugin.lxj_Office.lxj_SheetCount(index)
TracePrint "本EXCEL共有标签页数: " & i
Delay 200
//在所有标签页后新增一个标签页,无参数,返回新标签的页码
x=Plugin.lxj_Office.lxj_SheetAdd(index)
TracePrint "新建标签页码为: " & x
Delay 200
name=Plugin.lxj_Office.lxj_SheetName(x,index)
TracePrint name
Delay 200
TracePrint "下面进行页面内容的设置"
Delay 200
Call Plugin.lxj_Office.lxj_SheetRename(2,"EXCEL中颜色数值查看表",index)
Call Plugin.lxj_Office.lxj_ExcelCells("EXCEL中颜色数值查看表","垂直对齐","居中",index)
Call Plugin.lxj_Office.lxj_ExcelCells(2,"水平对齐","居中",index)
Call Plugin.lxj_Office.lxj_ExcelCells(2,"字形","加粗",index)
//设置并生成表头
TracePrint "设置并生成表头"
Delay 200
Call Plugin.lxj_Office.lxj_ExcelRange(2,"A1:H1","合并单元格",index)
Call Plugin.lxj_Office.lxj_ExcelWrite(2, 1, 1, "EXCEL中颜色数值查看表",index)
Call Plugin.lxj_Office.lxj_ExcelRange(2,"A1","背景颜色",1,index)
Call Plugin.lxj_Office.lxj_ExcelRange(2,"A1","字体颜色",33,index)
Call Plugin.lxj_Office.lxj_ExcelRange(2,"A1","字体","楷体_GB2132",index)
Call Plugin.lxj_Office.lxj_ExcelRange(2, "A1", "字号", 26, index)
TracePrint "输出表格正文"
//输出表格正文
Delay 200
Call Plugin.lxj_Office.lxj_ExcelRows(2,"2:8","行高",30,index)
Call Plugin.lxj_Office.lxj_ExcelColumns(2,"A:H","列宽",12,index)
for n=2 to 8
for m=1 to 8
color=8*(n-2)+m
rang=cstr(chr(64+m))&cstr(n)
Call Plugin.lxj_Office.lxj_ExcelRange(2,rang,"背景颜色",color,index)
If color=1 then
Call Plugin.lxj_Office.lxj_ExcelRange(2,rang,"字体颜色",2,index)
EndIf
Call Plugin.lxj_Office.lxj_ExcelWrite(2, n, m, "颜色值:"&color,index)
next
next
txtArr=Plugin.lxj_Office.lxj_ExcelReadEX(2,"A1:H8",index)
TracePrint "第2行第4列内容为:" & txtArr(2, 4)
Delay 200
txt=Plugin.lxj_Office.lxj_ExcelRead(2,5,8,index)
TracePrint "第5行第8列内容为:" & txt
Delay 200
//命令演示完毕,关闭EXCEL文件
Call Plugin.lxj_Office.lxj_ExcelRange(2, "A15:H15", "合并单元格", index)
Call Plugin.lxj_Office.lxj_ExcelWrite(2, 15, 1, "命令演示完毕,即将关闭EXCEL文件",index)
Call Plugin.lxj_Office.lxj_ExcelRange(2,"A15","背景颜色",1,index)
Call Plugin.lxj_Office.lxj_ExcelRange(2,"A15","字体颜色",33,index)
Call Plugin.lxj_Office.lxj_ExcelRange(2,"A15","字体","楷体_GB2132",index)
Call Plugin.lxj_Office.lxj_ExcelRange(2, "A15", "字号", 26, index)
TracePrint "命令演示完毕,即将关闭EXCEL文件"
Delay 1000
Call Plugin.lxj_Office.lxj_ExcelClose(index)
TracePrint "演示结束"
上述代码调试演示:
excel实际运行效果演示:
3
WORD操作部分命令整理
命令功能: | 打开Word文档 |
---|---|
命令参数: | 【参数1】 Word完整路径 |
【参数2(可选)】 打开方法,0不可见,1为可见。默认为0 | |
返回值: | 无 |
命令名称: | lxj_WordReadEX 读取Word文档全文 |
---|---|
命令名称: | lxj_WordWriteEX 重写Word文档 |
命令名称: | lxj_WordSet 设置光标位置 |
命令名称: | lxj_WordBackspace 当前光标处按下 Backspace 键删除 |
命令名称: | lxj_WordInsertPage 当前位置插入分页符 |
命令名称: | lxj_WordInsertPic 当前位置插入图片 |
命令名称: | lxj_WordRead 读取当前选中文字 |
命令名称: | lxj_WordWrite 从当前位置写入内容 |
命令名称: | lxj_WordProtect 设置Word文档密码 |
命令名称: | lxj_WordSaveAs Word文档另存为 |
命令名称: | lxj_WordSave 保存Word文档 |
命令名称: | lxj_WordClose 关闭Word文档 |
下面贴一个插件中自带的代码示例(8.x语法):
path="C:\a.doc"
//打开Word文档,为了演示,将第二个参数(可选参数)设为1使其可见,默认为不可见
Call Plugin.lxj_Office.lxj_WordOpen(path,1)
word=Plugin.lxj_Office.lxj_WordReadEX()
Call Plugin.File.WriteFileEx("C:\b.txt", word)
MessageBox "Word全文为:"&word
Text = Plugin.File.ReadFileEx(".\QMScript\插件命令\命令例子:办公文档Office插件.Q")
Text=replace(Text,"|",chr(10))
Text=left(Text,len(Text)-1)
Call Plugin.lxj_Office.lxj_WordWriteEX(Text)
MessageBox "全文重写完毕"
Call Plugin.lxj_Office.lxj_WordSet("段",0)
MessageBox "已跳转至开头"
Call Plugin.lxj_Office.lxj_WordSet("段",8,"下")
MessageBox "已跳转至第9段开头"
Call Plugin.lxj_Office.lxj_WordSet("字",8,"右",1)
Call Plugin.lxj_Office.lxj_WordBackspace()
MessageBox "已删除开头8个字符"
Call Plugin.lxj_Office.lxj_WordSet("字",-1,"", 1)
word=Plugin.lxj_Office.lxj_WordRead()
MessageBox "选中文字为:"&word
Call Plugin.lxj_Office.lxj_WordWrite("测试")
MessageBox "已写入新文字"
Call Plugin.lxj_Office.lxj_WordInsertPage()
MessageBox "已插入新页"
Call Plugin.lxj_Office.lxj_WordInsertPic("C:\图片.jpg")
MessageBox "已插入图片"
Call Plugin.lxj_Office.lxj_WordSet("段",-1)
MessageBox "已到达到最后一段的开头"
Call Plugin.lxj_Office.lxj_WordSet("字",-1)
MessageBox "已到达最后"
//加密
Call Plugin.lxj_Office.lxj_WordProtect("打开","123")
MessageBox "已设置打开密码为123"
Call Plugin.lxj_Office.lxj_WordProtect("修改","456")
MessageBox "已设置修改密码为456"
//操作结束关闭Word文档
Call Plugin.lxj_Office.lxj_WordClose()
MessageBox "演示结束"
4
注意事项
插件自带的示例代码,excel部分有个错误,Plugin.lxj_Plug可能作者修改名称时忘记修改,直接运行示例代码会报错,将里面的_Plug全部修改为_Office即可。
还是老问题,写代码时,末尾记得加上“关闭文档”命令,不然会一直卡在后台进程中,如果没保存可能会丢失。
如果真的被卡后台里了,怎么办?打开进程管理,找到excel或者word的进程,关掉即可。
5
其他实现excel办公自由的方法
其实excel是有自带vba编程的功能,在sheet名的位置,鼠标右键,菜单中有个“查看代码”选项,点进去就切到了vba代码编辑模式,也是可以实现各种操作。关于常用的操作命令可以直接百度搜寻,excel想玩得溜的话,真可以学一下vba,代码编辑好,运行一下,就哦了,即使上万行数据的报表也不过十几秒钟的事情。
另外,最近各种python办公处理文档的广告,简直要炸屏了,我好像错过了什么…… 当然,python的确是很好用的编程工具,数据收集录入自动化,甚至可以画出各种漂亮的图表。
-END-
© Copyright
奔跑的键盘侠原创作品 | 尽情分享朋友圈 | 转载请联系授权