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

boyanx4个月前技术教程18

最近使用了一下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)

}

具体示例下回分解。

相关文章

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

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

JavaScript 中文周刊 #196 -(javascript中文网)

本期看点:你对 JavaScript 日期了解多少?来试试这个测验吧,Next.js v15.4 发布并预告 v16 新特性,2025 年如何创建一个 NPM 包,WebAssembly 应用场景讨...

一款功能超强的在线编辑器,完全开源了!

Etherpad 是一个基于 nodejs 的在线文档编辑器,服务端性能可以得到保证,多个客户端的操作是即时同步的,而且对文档数据提供了存储的支持。「软件介绍」Etherpad 是一个开源的,基于 W...

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

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

js基础学习(js基础知识)

vscode运行js要在VSCode中运行JavaScript代码,你需要按照以下步骤操作:首先确保你已经安装了Node.js。如果没有安装,可以从官网(https://nodejs.org/)下载并...

Github 21k star,这个JS组件让你的数据表格秒杀Excel!

在Web应用开发的战场上,数据表格一直是一个让开发者既爱又恨的领域。一方面,几乎所有企业级应用都离不开它;另一方面,构建一个既美观又功能完备的数据表格,往往需要耗费大量时间和精力。更不用说用户总是会说...

发表评论    

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