wps宏编辑器Api接口js事件讲解

本文介绍了WPS官方开放平台宏编辑器API中的表格事件,如WorkbookBeforeClose事件,用于在表格工作簿未保存时阻止关闭。此外,还列举了其他应用和工作簿事件,以及如何通过JavaScript编程捕获和处理这些事件,以实现对表格的特定功能处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WPS官方的开放平台宏编辑器API中有关于事件的详细描述,包括:表格事件、文字事件、演示事件、控件事件,本文只阐述表格事件相关的知识点,比如:都有哪些表格事件,如何通过JS编程来捕获事件、处理事件,以实现我们对表格的特殊处理。

1、开放平台对事件的描述

在这里插入图片描述
通过 WPS宏编辑器能够对 WPS 应用程序发出的事件添加 JavaScript 方法进行处理。 在通知型事件中,可以接收已经发生变化,比如通过WindowActivate事件,可以对文档的切换做一些功能性处理; 在询问型事件中,可以控制是否继续执行当前操作,比如通过WorkbookBeforeClose事件,可以取消文档的关闭。

1)找到WorkbookBeforeClose事件

在这里插入图片描述

2)处理事件
function Application_WorkbookBeforeClose(Wb, Cancel)
{
    if (!Wb.Saved) {
        MsgBox("请先保存文档!")
        Cancel.Value = true;
    }
}
3)查看效果

当表格工作簿有内容变动未保存时,关闭该工作簿就会提示:请先保存文档,点击确定按钮后会取消关闭。

  • 如图所示,内容变动未保存,工作簿标签栏会有一个如红框所示小图标。
    在这里插入图片描述
  • 关闭工作簿,就会弹出如下提示框:
    在这里插入图片描述
  • 点击确定按钮后,会取消关闭

2、Application 事件

1)事件列表
名称触发时机
NewWorkbook当新建工作簿时触发此事件。
SheetActivate(Sh)当激活任一工作表时触发此事件。
SheetBeforeDelete(Sh)当删除任一工作表之前触发 此事件。
SheetBeforeDoubleClick(Sh, rg, cancel)当双击任一工作表之前触发此事件。
SheetBeforeRightClick(Sh, rg, cancel)当右击任一工作表之前触发此事件 。
SheetCalculate(Sh)在任一工作表进行计算时触发此事件。
SheetChange(Sh, rg)当用户或外部链接更改了任一工作表中的单元格时触发此事件。
SheetDeactivate(Sh)当任一工作表被切换到非激活状态时 触发此事件。
SheetFollowHyperlink(Sh, Target)单击任一工作表的超链接时触 发此事件。
SheetSelectionChange(Sh, Target)任一工作表上的选定区域发生更改时,将触发此事件。
WindowActivate(Wb, Wn)任一工作簿窗口被激活时,将触发此事件。
WindowDeactivate(Wb, Wn)任一工作簿窗口被切换到非激活状态时 触发此事件。
WindowResize(Wb, Wn)任一工作簿窗口调整大小时将触发此事件。
WorkbookActivate(Wb)任一工作簿被激活时,将触发此事件。
WorkbookAfterSave(Wb, Success)任一工作簿被保存之后触发此事件。
WorkbookBeforeClose(Wb, Cancel)任一打开的工作簿关闭之前触发此事件。
WorkbookBeforePrint(Wb, Cancel)在打印任一打开的工作簿之前触发此事件。
WorkbookBeforeSave(Wb, SaveAsUI, Cancel)任一工作簿被保存之前触发 此事件。
WorkbookDeactivate(Wb)任一工 作簿被切换到非激活状态时触发此事件。
WorkbookNewSheet(Wb, Sh)在任一打开的工作簿中创建新工作表时触发此事件。
WorkbookOpen(Wb)当打开一个工作簿时触发此事件。
2)参数通用解释
  • Wb,Workbook,工作簿
  • Wn,Window,窗口对象
  • Sh,Object,工作表
  • rg,Range对象,单元格对象
  • cancel,Object,如果设置其属性Value为 true,则取消本次操作。
  • SaveAsUI,Boolean,如果为true则表示此次保存操作将会弹出保存或是另存为对话框
  • Success,Boolean,结果是true还是false
3)具体事件说明请参考wps开放平台说明

3、Workbook事件

1)事件列表
名称触发时机
Activate该工作簿被激活时,将触发此事件。
AfterSave(Success)该工作簿被保存之后触发此事件。
BeforeClose(Cancel)该工作簿关闭之前触发此事件。
BeforePrint(Cancel)该工作簿打印之前触发此事件。
BeforeSave(SaveAsUI, Cancel)该工作簿保存之前触发此事件。
Deactivate该工作簿被切换到非激活状态时触发此事件。
NewSheet(Sh)该工作簿中创建新工作表时触发此事件。
Open该工作簿打开时触发此事件。
SheetActivate(Sh)当激活该工作簿任一工作表时触发 此事件。
SheetBeforeDelete(Sh)删除该工作簿任一 工作表之前触发此事件。
SheetBeforeDoubleClick(Sh, rg, cancel)双击该工作簿任一工作表之前 触发此事件。
SheetBeforeRightClick(Sh, rg, cancel)右击该工作簿任一工作表之前 触发此事件。
SheetCalculate(Sh)在该工作簿任一工作表进行 计算时触发此事件。
SheetChange(Sh, rg)当用户或外部链接更改了该工作簿任一 工作表中的单元格时触发此事件。
SheetDeactivate(Sh)当该工作簿任一 工作表被切换到非激活状态时触发此事件。
SheetFollowHyperlink(Sh, Target)单击该工作簿任一 工作表的超链接时触发 此事 件。
SheetSelectionChange(Sh, Target)该工作簿任一工作表上的选定区域发生更改时,将触发此事件。
2 )参数基本同Application事件
3)具体事件说明请参考wps开放平台说明

4、Application、Workbook事件关系

我们不难发现很多事件在Application、Workbook中都有,比如Application.WorkbookActivate(Wb), Workbook.Activate()都表示工作簿激活时会触发该事件,那么两者到底什么关系?

  • Application可以理解是表格应用级别的,所有工作簿激活都会触发该事件;
  • Workbook只对当前工作簿本身生效;
  • 如果同一事件在Application、Workbook都有捕捉处理,则先触发Workbook,后触发Application,如下案例所示
function Application_WorkbookActivate(Wb)
{
	MsgBox("Application event: " + Wb.Name + " is avtived!");
}
function Workbook_Activate()
{
	MsgBox("Workbook event: " + ActiveWorkbook.Name + " is avtived!");
}

先触发workbook事件
在这里插入图片描述
后触发Application事件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值