在线办公 分类
WPS Office-支持多人在线编辑多种文档格式_WPS官方网站程序员必知:JSA宏编程(JS):1初识发布日期:2025-07-18 浏览次数:

  WPS,WPS Office,WPS官网,WPS下载,金山文档,在线编辑文档,协同办公,云文档,云表格,在线表格,远程办公,远程会议,云办公解决方案,在线办公,多人协同云文档,协同办公平台,流程图软件

WPS Office-支持多人在线编辑多种文档格式_WPS官方网站程序员必知:WPSJSA宏编程(JS):1初识

  根据官方文档(中的介绍,WPS 内嵌了一个 V8 引擎的 JavaScript 运行时,支持大部分 ES6 语法,实测支持到 ES2019:

  WPS宏编辑器集成了一个V8 引擎的 JavaScript 运行时,支持大部分ES6语法,因此宏编辑器支持JavaScript 标准内置对象,注意,JS内置对象和浏览器的内置对象是不同的,WPS宏编辑器集成的是JavaScript 运行时,而不是浏览器,因此WPS宏编辑器不支持浏览器的内置对象。具体API参见 。

  JSA 也是 WPS 默认的宏语言,WPS 官方为之提供了 WPS 宏编辑器,以方便大家编辑 JSA 宏代码。

  如下示例是要给 B4 单元格字体颜色设为红色,背景色设置为黄色,录制的宏代码如下:

  第 8-11 和 第 12-17 行处的代码段,是定义箭头函数,以及对它们的调用。

  宏录制器,总是会把对同一个对象的多个操作,以这种箭头函数的形式,录制出来。

  这可能是大家打交道最频繁的,与 VBA 有所不同的是,现在没有文档模块了,WPS 宏编辑器只提供了一个入口来编写事,即

  它订阅了当前工作簿 Workbook 的 SheetChange 事件,当第 1/2 表的第 4 列的值发生改变时,将单元格的字体颜色修改为蓝色,它的代码如下:

  与 VBA 的事件有所不同,WPS 中不内建文档模块,这里说的文档模块,就是你在 Office 的 VBE 中【工程管理器】里面的 Sheet1, Sheet2, ..., SheetN 和 ThisWorkbook,这 N+1 个内建的模块,VBE 里针对每一个打开的工作簿,都会内建一堆这样的文档模块,工作表及打开的工作簿如果比较多时,要查找自己的模块,还得去拖滚动条。

  WPS 则以比较巧妙的方式,规避了这个问题:WPS 不内建任何模块,用户想要订阅事件,直接在事件栏里面选中即可,事件处理程序名称与参数,会更好地协助你做你想做的事儿。

  WPS贴心地为大家新提供了几个控件,尤其是【水平布局控件】和【垂直布局控件】,有这两个控件,大家可以更好的设计窗体了。

  要编写窗体及其控件的事件,和文档事件一样,通过事件栏,来指定要处理的控件的事件

  由图可见WPS窗体的界面与代码是分离的,代码是写在普通模块里面的,绘制的窗体是在另一个模块

  由上图可见,所有的对象,无论是Application(应用程序),Workbook(工作簿)、窗体、窗体控件、工作表控件,这些事件源,都是在同一个列表中,大家注意命名,以免混淆

  为表格自定义公式函数是很简单的,只要返回常规类型(如文本,数字,日期,真假值即可),且是全局函数即可

  WPS 宏编辑器,提供了【立即窗口】,您可以直接在【立即窗口】执行单行的 JSA 语句,就像在写命令行,与 VBA 不同的时,这里不需要前置问号才算求值

  WPS 宏编辑器,允许你为 JSA 代码行设置断点,以方便对代码的调试,配套提供了【本地窗口】,以方便你了解断点处的运行状态

  WPS 宏编辑器,同样提供了【逐语句】【逐过程】【跳出】功能,您可以以 VBA 熟悉的方式来调试 JSA 代码,不同的是它们的快捷键与 VBA 不同,与现在主流的 IDE 相同

  WPS 宏编辑器,同样提供了【编译】工具,你可以在写完代码后,用它来做语法检查

  WPS 宏编辑器,同样提供了【监视】功能,并配套提供了【监视窗口】,你可以借此设置中断条件,以进行复杂调试

  可以在代码行通过:右键》【切换书签】的方式,来建立书签,使用 Ctrl + Shift + N(Next:下一个)/P(Previous:前一个)快捷键,快速地在多个书签之间跳转,这对于调用自定义的库来实现具体应用时比较有用,可以方便地在库与调用代码之间来回切换,调整库代码与应用代码,以便可以有更可靠更高效的代码逻辑

  有参数的属性,在 JSA 中变成了方法,须得在后面加 () ,才能正确访问,比如 Address 在 VBA 中是属性,因为 VBA 支持带参数的属性,但 JSA 不支持,所以在 JSA 中 Address 成员,被识别为方法,必须以执行函数的方式来访问;当你参考 Office 文档来写 JSA 代码时,要注意,只要需要传递参数,即便手册说它是属性,在 JSA 中也应被当然方法来对待。

  当参数比较多,你又只想传递一个参数,其它都用默认值的时候,怎么办呢,可以这样:ActiveCell.Address(...【,,xlR1C1】);

  可能你又要说,如果参数几十个,只想传递某个参数呢?也可以,比如 ThisWorkbook.SaveAs(/有 12 个参数/),每个参数都有默认值,我们想传递第 9 个参数,也即 AddToMru 参数,可以这样写:

  JSA 基于原型链的面向对象,灵活性非常强,但毕竟动态一时爽,重构火葬场,其工程性差,好在它所面临的业务 99.99% 的场景,是弱工程性的,所以正好适用

  JSA 背靠 JS,后者有国际性的标准化组织,每年推动语言改进,JS 只会越来越强大,越来越方便,经典 class 的引入就是明证

  JSA 背靠 JS,后者有最活跃的社区,由全球人才发力,各种工具与库层出不穷,可以为 JSA 提供助力,比如我使用了来自 github 的 linq.js 库,它极大地方便了一些查询工作

  VBA 长久没有语言层面的更新,语言特性早已过时;而现行的 VBA 标准,其语言 特性呆板、生硬,基本没什么灵活性,比如不能愉快地相互传递函数,来灵活地配置功能(借助奇技淫巧曲线救国的,一边去)

  在编辑的模块窗口是 MDI 窗口模式,而不是便利的标签页模式,关闭与切换都很麻烦

  标识符命名具有穿透性,写得好好的库 API 命名,会因为其它模块同名标识符的大小写,被自动修改,真是日了狗了

  JSA 安全性好,没有对乱七八糟的外部库的支持,你做好 Office 自动化这个本职工作就好,调用 Win32API?,你想干嘛

  JavaScript:编程宇宙的多面闪耀之星-揭秘 JavaScript,编程界的全能霸主如何炼成?-优雅草卓伊凡

  JavaScript:编程宇宙的多面闪耀之星-揭秘 JavaScript,编程界的全能霸主如何炼成?-优雅草卓伊凡

  本指南介绍如何在阿里云Linux服务器(Ubuntu/CentOS)上搭建Node.js环境,包含两种安装方式:包管理器快速安装和NVM多版本管理。同时覆盖全局npm工具配置、应用部署示例(如Express服务)、PM2持久化运行、阿里云安全组设置及外部访问验证等步骤,助你完成开发与生产环境的搭建。

  JavaScript 一直是 Web 开发的基石,以其灵活性和动态性著称,但其松散类型可能导致大型项目中出现难以调试的错误。TypeScript 作为 JavaScript 的超集,通过引入静态类型系统,提供了更高的类型安全性和更好的工具支持,尤其适合大型团队和复杂项目。本文详细对比了 JavaScript 和 TypeScript 的优缺点,并提供了实际代码示例,帮助开发者根据项目需求选择合适的工具。

  解锁JavaScript模块化编程新纪元:从CommonJS的基石到ES Modules的飞跃,探索代码组织的艺术与科学

  【8月更文挑战第27天】随着Web应用复杂度的提升,JavaScript模块化编程变得至关重要,它能有效降低代码耦合度并提高项目可维护性及扩展性。从CommonJS到ES Modules,模块化标准经历了显著的发展。CommonJS最初专为服务器端设计,通过`require()`同步加载模块。而ES Modules作为官方标准,支持异步加载,更适合浏览器环境,并且能够进行静态分析以优化性能。这两种标准各有特色,但ES Modules凭借其更广泛的跨平台兼容性和现代语法逐渐成为主流。这一演进不仅标志着JavaScript模块化的成熟,也反映了整个JavaScript生态系统的不断完善。

  【10月更文挑战第25天】本文深入探讨了JavaScript中的闭包,包括其基本概念、创建方法和实践应用。闭包允许函数访问其定义时的作用域链,常用于数据封装、函数柯里化和模块化编程。文章还提供了闭包的最佳实践,帮助读者更好地理解和使用这一强大特性。

  揭秘TypeScript的魔力:它是如何华丽变身为JavaScript的超能英雄,让您的代码飞入全新的编程维度!

  【8月更文挑战第22天】在Web开发领域,JavaScript是最主流的编程语言之一。但随着应用规模的增长,其类型安全和模块化的不足逐渐显现。为解决这些问题,微软推出了TypeScript,这是JavaScript的一个超集,通过添加静态类型检查来提升开发效率。TypeScript兼容所有JavaScript代码,并引入类型注解功能。

  用JavaScript编程控制网页上checkbox选择状态:全选、全部取消、反选

  用JavaScript编程控制网页上checkbox选择状态:全选、全部取消、反选

  银行流水生成器在线制作,银行流水虚拟生成器app,h5+js+css【仅供学习用途】

  仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具

  处方单图片生成器, 处方单在线制作免费,js+css+html恶搞神器

  病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具

  征信报告修改器,征信报告生成器,制作软件无痕修改软件【js+html+css】

  抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css

  个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】

  制作b超单生成器, 假怀孕b超单图片制作, p图医院证明【css+html+js装逼恶搞神器】

  医院检查单子p图软件,在线制作仿真病历,js+css+html装逼神器

  仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼线

  个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】

  个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】

  征信报告修改器,征信报告生成器,制作软件无痕修改软件【js+html+css】

  银行流水生成器在线制作,银行流水虚拟生成器app,h5+js+css【仅供学习用途】

  制作b超单生成器, 假怀孕b超单图片制作, p图医院证明【css+html+js装逼恶搞神器】

  医院检查单子p图软件,在线制作仿真病历,js+css+html装逼神器

  处方单图片生成器, 处方单在线制作免费,js+css+html恶搞神器

  病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具