wps & javascript
事情是这样的,大概是2021年3月份,正常使用wps的时候发现了开发工具里面出现了js宏,引起了我的好奇。当时还在猜想,莫不是wps使用了javascript替换了vba作为它的宏语言,如果真的是这样,那我觉得wps开发的倒还挺有先见之明。
于是,查阅了网络一些资料,这是wps在2021年3月左右内测上线的功能,刚好也是在我看到的那个时间段,但是查阅资料一顿操作下来,相关的学习资料几乎没有. 不过也毕竟是新出来的宏语言。
javascript是开发前端非常流行的脚本语言,随着javascript的流行,它也应用到很多非浏览器环境中,vue.js、react等以javascript为基础的流行前端框架,node.js也提供了javascript在服务器端运行时的环境,可以开发app和桌面gui程序,等等,因此,javascript在一些领域应用非常广泛。
此次wps引入javascript作为宏语言的开发脚本,让javascript在数据分析领域上得到了一些应用。另外,javascript和python类似,也是一种解释型的脚本语言,个人使用下来,javascript的语法也确实很简洁,因此可以在日后开发中,可以减少很多代码量。
office里的宏语言运行通常有两种形式,一种是运行过程(无返回值),一种是函数(有返回值). 因此个人猜测javascript宏语言也有这两种形式,那么按照往常写javascript的形式在wps里尝试创建一个函数。
新建一个excel工作簿,保存为xlsm格式。
好,打开wps-开发工具-wps宏编辑器,尝试下写下第一行代码。
function hello(){
return 'hello,world!'
}
在表格某一单元格内,直接调用hello()
函数,成功运行。
接着,再定义一个有参数的函数welcome()
试试,此代码用于定义字符串与参数的拼接。
function welcome(x){
return `你好,${x}。`
}
在A5
单元格输入了一段文字,在B6
单元格输入公式,调用函数welcome()
,参数为A5
的值,回车运行后,结果成功将A5
作为参数拼接到已有字符串中。
有时在进行数据处理时,遇到一些小问题,通常我能想到有以下一些方案:
1 excel自带函数
调用excel自带的函数觉得组合起来比较复杂,如果需要稍微复杂的处理时,就要在一行单元格内层层嵌套,自带函数在进行一些初级数据处理时还是非常实用的,但是在稍微复杂的数据处理就很力不从心了。
2 vba
写宏代码我觉得是比较合适的,因为不会脱离原有文件,在原有文件里可以定义函数,直接调用,具有很强的拓展性,但,如果写vba宏代码,vb的语法个人觉得较为冗长、繁琐,因个人平时写python比较多,所以在写vba的时候,个人觉得python 1行代码可以解决的问题,vba却要用10行才能解决调用,有时甚至无从下手。
3 python
如果用python的一些框架,例如pandas处理,python的语法很简洁,基本上可以帮助我们解决这些小问题,但,这样的话可能要从零开始写代码,导入数据、处理数据、导出数据,每一步都需要代码去完成,可能最终导出的文件还会改变原有excel的结构、格式,原本只是一个需要拧螺丝的问题,却要用造火箭的方式去完成。
总结
那wps使用了javascript作为宏开发语言意味着什么呢,javascript具有和python类似的语法简洁性,而且是当前非常流行的开发语言,同时又可以像vba一样内嵌在文档中,不需要脱离excel写脚本,结合了第2点和第3点的优势,javascript目前来讲还是很适用于当前的操作环境中。
根据IEEE 2021 编程语言排名可以看到javascript已位居第5位,vb已不再前10榜单之中。可见,javascript在众多编程语言中具有极其强劲的发展势头。

参考文章
[1] https://spectrum.ieee.org/top-programming-languages-2021
最后
在我们的公众号 巨数 后台回复20220222
获取本文高清pdf。
欢迎微信搜索 巨数 或点击下方的名片关注我们,如果您觉得这期内容做的不错的话,欢迎点赞、收藏、在看、转发。










