专栏首页奔跑的键盘侠按键精灵——如何实现excel办公自由

按键精灵——如何实现excel办公自由

这是奔跑的键盘侠的第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

奔跑的键盘侠原创作品 | 尽情分享朋友圈 | 转载请联系授权

本文分享自微信公众号 - 奔跑的键盘侠(runningkeyboardhero),作者:我是奔跑的键盘侠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python——量化分析介绍(九)

    从第三方获取到的数据,其实有挺多内容要自己填充完善的,比如股票停牌日的信息,要知道停牌日的个股信息是空的,如刚好持仓股遇到停牌,是无法交易的,计算持仓市值时,停...

    Ed_Frey
  • Python——量化分析介绍(十)

    这节要写的是从网站爬取财务报表信息,然后写入自己的数据集中。财务信息有了,接着就可以自己算各个股票的PE市盈率了。

    Ed_Frey
  • Python——量化分析介绍(六)

    写着写着,突然发现之前的标题“常用命令介绍”已经跟内容有点脱轨了,写的已经不只是命令了……

    Ed_Frey
  • GitLab 任意文件读取漏洞 (CVE-2016-9086) 和任意用户 token 泄露漏洞

    Author:dawu,LG(知道创宇404安全实验室) Data:2016-10-09 0x00 漏洞概述 1.漏洞简介 GitLab 是一个利用Ruby o...

    Seebug漏洞平台
  • flutter的Flexible和 Expanded的区别

    不同之处是Expanded会强制填充剩余留白空间,而Flexible不会强制填充。如下图所示。

    早起的年轻人
  • Python中的小魔法(二)

    01 函数 局部变量 x = 66 def func(x): print('x等于', x) x = 6 print('局部变量x改变...

    小歪
  • 勒索软件终结者:勒索软件,今天叔叔要教导你一些做人的道理!| 原创工具

    勒索软件终结者下载页面地址: http://www.pinchins.cn/ 哦对了,我们这里还收集所有勒索软件解密工具,以下是链接地址: http://www...

    FB客服
  • 一个简单的python爬虫,爬取知乎

    python学习教程
  • 苹果公布 macOS Mojave 即将更新的隐私和安全保护特性详情

    在WWDC期间,苹果在面向开发者的主题日活动Platforms State of the Union Event中,公布了更多关于将在 macOS Mojave...

    周俊辉
  • 在知乎上学 Python - 爬虫篇

    知乎是个好地方。虽然近年来,为了吸引更多的用户,知乎的定位与早期略有点偏离。但从内容质量和专业性来说,知乎仍然是国内数一数二的知识型社区。不少同学都是通过知乎发...

    Crossin先生

扫码关注云+社区

领取腾讯云代金券