1、从零开始了解和使用WPS的js宏(JSA)

boyanx2天前技术教程3

最近使用了一下wps的宏本地客户端功能进行了数据查询,与vba相比感觉还是比较好用的。(所谓本地客户端就是指单机使用运行的wps程序)

VBA因为长时间的发展,胜在功能比较强大,支持一些ActiveX对象和WindowsAPI的调用。但是缺点也很明显,一是安全性不够好,一些木马和病毒经常利用这个脚本强大的功能,二是兼容性不够好,换台电脑或者换个MSOffice版本,很可能就出错了。

WPS JS宏也叫JSA,去掉了VBA一些对象和windowsAPI调用功能。其他的方面,JSA官方开发文档的原文是:“WPS宏编辑器集成了一个V8 引擎的 JavaScript 运行时,支持大部分ES6语法,因此宏编辑器支持JavaScript 标准内置对象,注意,JS内置对象和浏览器的内置对象是不同的,WPS宏编辑器集成的是JavaScript 运行时,而不是浏览器,因此WPS宏编辑器不支持浏览器的内置对象。”,因此,JSA不必太过考虑兼容性,如果会一点js语法的话,上手会很快。

下面从零开始学习这个非常有用的工具,全程以表格的使用为例。

首先,打开wps,新建空白表格,进入【开发工具】菜单。如图1.1。

我们先定义一个自定义函数,测试一下:如图1.2

function testFunction(){

var t="hello world"

alert(t)

}

可以看到,这个IDE还是比较好用的,录入代码时有提示,并且键入(){}"" '' 等这些成对的英文符号时,只需按一个就行,另一个自动补全。光标自动的定位到中间。

使光标在函数体中间,点击运行按钮,弹出"hello world"的对话框。如图1.3

下面,把代码改成如下的样子,即在每行的语句结束处加上“;”这个英文分号,点击运行:

function testFunction(){

let t="hello world";

alert(t);

}

可以看到,能成功运行。

接下来,把代码改成一行的格式:function testFunction(){let t="hello world"; alert(t);}。可以成功运行。

把代码中的分号删除:function testFunction(){let t="hello world" alert(t) }。

弹出错误,如图1.4

说明JSA代码语句分割可以用英文分号,也可以与vba一样用换行分割

接下来把代码改成如下样子:

var t="hello world"

function testFunction(){

alert(t)

}

运行后如图1.5,提示 “ 语法错误:函数外不能使用赋值表达式,变量初始化和函数调用。”

接下来把代码改成:

var t

function testFunction(){

t="hello world"

alert(t)

}

再改成:

let t //或者 const t

function testFunction(){

t="hello world"

alert(t)

}

都与图1.5的错误差不多:即JSA 不能在函数体外定义常量和变量

既然不能在函数体外定义常量和变量,那么只能曲线救国,结合表格在需要的时候使用函数定义常量和全局变量。

function 定义常量(){ return "返回常量"}

function 定义变量(){ return
Application.Worksheets.Item("Sheet1").Range("a1").Value2}

function 测试函数(){

let c = 定义常量()

alert(c)

let v =定义变量()

alert(v)

}

具体示例下回分解。

相关文章

前端程序员:如何用javascript开发一款在线IDE?

前言3年前在AWS re:Invent 大会上AWS 宣布推出 Cloud9, 用于在云端编写、运行和调试代码,它可以直接运行在浏览器中,也就是传说中的 Web IDE。3年后的今天随着国内云计算的发...

uniapp中使用ace在网页上做代码编辑器

A、安装npm install ace-buildsB、在uniapp中使用<template> <view class="content"> <...

官宣!KingDraw开放平台正式上线啦

最近一段时间没有大版本更新,好多小可爱都着急了~~其实,KingDraw的小伙伴们已经准备了很多惊喜,近期会陆续带给大家!比如上周全新升级的画板内核、重装上阵的图像识别,还有我们今天“官宣”的King...

如何把deepseak在WPS中使用?(deepl怎么用)

如何把deepseak在WPS中使用目前,**DeepSeek**(深度求索)的官方功能并未直接集成到 **WPS Office** 中,但可以通过以下几种方式间接结合使用,提升办公效率:### **...

面向未来的富文本编辑器,支持 AI、MCP,开源免费!

在现代前端开发中,富文本编辑器早已不只是输入文字的工具。它是内容创作、结构表达和用户交互的核心入口。今天,我们来介绍一款面向未来的编辑器框架——Plate.js。Plate.js 是什么?Plate....

一款强悍的 HTML5 Canvas 2D 图形渲染引擎:Leafer JS!

经过3 年多开发的 LeaferJS 开源引擎终于打磨成熟,迎来了正式版的发布!号称只用 1.5s 可以渲染 100万个矩形,并且还是国产的。Leafer JS是一款开源的HTML5 Canvas 2...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。