当前位置:首页 > 技术文章 > 正文内容

2、从零开始了解和使用WPS的js宏(JSA)之学习方法

对于初学者,没接触过JavaScript语句和vba的,可能理解起来有些困难。所以我推荐面向搜索编程,对于一些js语法和函数问题现学现用都可以找到答案。对于与WPS宏相关的一些问题,可以参考WPS开放平台中的开发文档、 docs.microsoft.com 网站的开发文档、搜索vba的一些实例即可解决。

首先是如何使用WPS开放平台中的开发文档。

从上一节的 1、从零开始了解和使用WPS的js宏(JSA)图1.1的宏编辑器界面,按F1打开WPS开放平台,选择开发文档,客户端开发,选择搜索栏下面的WPS 基础接口。

如图2.0

第一条是【从Visual Basic转到 JavaScript】,如果有点基础的话,看过这篇文档以后就可以上手操作了。

因为我是以表格为例,所以经常使用的就是图上的【表格 API 参考】。使用过VBA的朋友对这里面的对象应该都很熟悉,这些对象的属性和方法与VBA中的没什么不同,只是在使用过程中要注意语法问题。

关于JavaScript的学习教程,以头条搜索为例:

在搜索框输入:js 函数教程 w3cschool

或者输入:js 函数教程 菜鸟教程

网页出来后,在前面几条中选择非CSDN的网站即可。

如图2.1 选择第三条打开。这些网站都是针对初学者的,根据具体案例学习应该非常容易。

下面分析一下 上一篇 最后部分代码的内容 图1.6。

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

如上代码,JSA 不能在函数体外定义变量常量和对象,所以定义常量和全局变量只能采取这个变通方法。

第一行代码直接使用函数返回定义的常量,这么做有两点原因:

1、定义一次全局使用,尤其是像Sheet这种工作表的名称,比如默认使用Sheet1,就可以在模块里定义这个函数,当Sheet1改名时,只要改这一个函数就行,而不用搜索全部代码进行修改。

2、JSA 宏编辑器看不到工作表(Worksheet)对象,Worksheet对象的CodeName是空值,无法在代码中直接引用对象。下面给出与VBA代码编辑器的对比:


从图2.2.0 与图2.2.1对比,可以看出,VBA 可以使用WorkSheet对象的CodeName来使用对象,这样可以防止工作表被使用者改名和更改顺序导致的错误。而JSA 宏不能使用这个特性。因此JSA宏代码完成以后,最好是对工作薄(Workbook)对象进行保护。

//JSA 代码对工作簿进行保护,第一个参数是密码,可以录入“123”这样的密码;
//第二个参数是结构,这个为 true 将不能更改顺序、重命名、删除、复制等工作表操作
//第三个参数是窗口,这个为true 将不能对单个工作表进行窗口化操作:大小及关闭;
//第一个参数不使用密码,VBA代码:Application.Workbooks(1).Protect(  ,true,true);
//JSA 空参数使用undefined;只要中间的参数为true就可以防止工作表被改名。
Application.Workbooks.Item(1).Protect(undefined, true, true)

上面这条语句可以放到立即窗口执行:在立即窗口,复制上面这条语句,光标放在这条语句上,回车后会执行。

如图 2.3,在立即窗口,除了保护工作薄的语句,我还加了一条函数,这个函数测试工作薄结构是否被保护,最终得到 “工作簿已保护” 的显示。

第二行代码

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

使用单元格a1存储变量值,从而模仿定义全局变量的效果。

本节内容到此结束。从下一篇开始,我将从实例出发,逐步构建一个wps宏查询报表应用。这里面涉及到表格函数应用、SQL语句表格查询、js 语法等多方面的内容。

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/4248.html

分享给朋友:

“2、从零开始了解和使用WPS的js宏(JSA)之学习方法” 的相关文章

Nginx动态请求如何处理?

动态请求通常指的是那些需要服务器端生成内容的请求,例如,当用户访问一个包含动态内容的网页时,服务器需要执行脚本(如PHP、Java、Ruby等)来生成HTML、CSS、JavaScript等文件。以下是在Nginx中处理动态请求的一般步骤:配置Nginx:在Nginx的配置文件中,使用locatio...

nginx 多域名配置 nginx多站点配置示例

Nginx 可以配置多个域名,以便根据不同的域名来处理不同的请求。下面是一个配置多个域名的例子:server { listen 80; server_name example1.com; location / { root /var/www/example1...

一文说清nginx规则匹配(含案例分析)

概述: 在nginx中,匹配分很多情形,例如:区分大小写匹配、不区分大小写匹配、有强匹配开头、有模糊匹配某些字符、有匹配后重写动作、有匹配反向代理动作、有匹配后终止操作、还有匹配全局变量类型等等,在很多情形中,匹配动作也存在优先策略,来看看下面的案例。案例一、 server { .............

阿里架构师讲面试:Nginx 配置 HTTPS 完整过程,细致入微全是精华

配置站点使用 https,并且将 http 重定向至 https。1. nginx 的 ssl 模块安装查看 nginx 是否安装 http_ssl_module 模块。$ /usr/local/nginx/sbin/nginx -V如果出现 configure arguments: --with-...

Linux系统非root用户下安装Nginx

通常使用Nginx或者Apache作为Web服务器时,默认监听80端口,因此默认会使用root用户去安装,而且,使用yum命令安装时,通常会安装到默认的路径下,默认路径通常是root用户才有执行权限的。如果不需要使用Nginx监听1024以下的端口,且对权限和网络管理比较严格时,能用非root权限解...

http请求域名强制跳转https

网站添加了https证书后,当http方式访问网站时就会报404错误,所以需要做http到https的强制跳转设置. ---------------一、采用nginx的rewrite方法--------------------- 下面是将所有的http请求通过rewrite重写到https上。 例如...