Script Lab 06:事件处理,Excel 基础操作(4)

简介: Script Lab 06:事件处理,Excel 基础操作(4)

准备工作

事件驱动编程,可以让操作变能更丰富,更改事件可能会使事情变得更容易处理。开发者可以靠着各种事件的的触发来设计可以自动执行的 Office 应用,比如可以在工作表中的选择时发生的事件,就是一个常见的应用场景。

如果曾经使用 VBA 的事件,会麻烦一些,而 VSTO 则要方便得多,通过重载运算符来操作。在 OfficeJS 中,事件操作介于两者之间,比 VSTO 要麻烦些,必须没有重载机制,但是比 VBA 又要简单些。我们先来看看传统的 Office 事件声明方式:

image.png


工作表事件

【VBA】

在工作表中的选择时发生的事件,也是事件驱动编程最常用到的一种。VBA 通常使用  Worksheet.SelectionChange 事件来检测工作表上的选择更改:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Debug.Print Target.Address
End Sub


【OfficeJS】

核心代码为:

sheet.onSelectionChanged.add(onSelectionChanged);

Excel.run
    (
    async (context) => {
        //准备工作
        const sheet = await OfficeHelpers.ExcelUtilities.forceCreateSheet(context.workbook, "MySheet");
        sheet.activate();
        OfficeHelpers.UI.notify("MySheet worksheet created !");
        await context.sync();
        //注册事件
        var eventResult = sheet.onSelectionChanged.add(onSelectionChanged);
        OfficeHelpers.UI.notify("MySheet worksheet SelectionChange event registed !")
        await context.sync();
        //事件函数
        function onSelectionChanged(event) {
            console.log(JSON.stringify(event));
        }
    }
    );


事件输出效果:

image.png


【小技巧】

Script Lab 编辑器不支持中文:

注释可以先写好,然后贴入代码。  

notify 的提示目前中文均是乱码,无解。

image.png


【注销事件】

核心代码为:

eventResult.remove();


eventResult.remove();


后记

一个项目,有了事件驱动,才算能上真正的完整。加上前几节内容讲述了代码框架、Office JavaScript API 助手、Excel Api (数据操作),理论上您己经可以像 VBA 一样,创作出大部分的流程应用了。也希望将你的实践案例分享出来。




Script Lab 01:快速 Office 365 开发工具

Script Lab 02:Script Lab,知识储备

Script Lab 03:Script Lab,启动函数,Excel 基础操作(1)

Script Lab 04:Script Lab,九九乘法表,Excel 基础操作(2)

Script Lab 05:Office JavaScript API助手,Excel 基础操作(3)

Script Lab 06:事件处理,Excel 基础操作(4)

Script Lab 07:单词“卡拉OK”,Word 基础操作

Script Lab 08:异步调用函数,PowerPoint 基础操作

Script Lab 09:为 Officejs 开发配置 VSCode 环境

Script Lab 10:OIfficeJS 的三种调试方式

相关文章
|
存储 数据挖掘
业务数据分析-Excel的基础操作(一)
业务数据分析-Excel的基础操作(一)
225 0
业务数据分析-Excel的基础操作(一)
Script Lab 07:引入控件,Excel 基础操作(5)
Script Lab 07:引入控件,Excel 基础操作(5)
305 0
Script Lab 07:引入控件,Excel 基础操作(5)
|
算法 JavaScript C#
Script Lab 版,九九乘法表,Excel 基础操作(2)
Script Lab 版,九九乘法表,Excel 基础操作(2)
264 0
Script Lab 版,九九乘法表,Excel 基础操作(2)
|
前端开发 UED
尝试:Script Lab,Excel 基础操作(1)
尝试:Script Lab,Excel 基础操作(1)
731 0
尝试:Script Lab,Excel 基础操作(1)
|
JavaScript 前端开发 算法
Script Lab 04:Script Lab,九九乘法表,Excel 基础操作(2)
Script Lab 04:Script Lab,九九乘法表,Excel 基础操作(2)
320 0
Script Lab 04:Script Lab,九九乘法表,Excel 基础操作(2)
|
2月前
|
Python
如何根据Excel某列数据为依据分成一个新的工作表
在处理Excel数据时,我们常需要根据列值将数据分到不同的工作表或文件中。本文通过Python和VBA两种方法实现该操作:使用Python的`pandas`库按年级拆分为多个文件,再通过VBA宏按班级生成新的工作表,帮助高效整理复杂数据。
|
2月前
|
数据采集 数据可视化 数据挖掘
用 Excel+Power Query 做电商数据分析:从 “每天加班整理数据” 到 “一键生成报表” 的配置教程
在电商运营中,数据是增长的关键驱动力。然而,传统的手工数据处理方式效率低下,耗费大量时间且易出错。本文介绍如何利用 Excel 中的 Power Query 工具,自动化完成电商数据的采集、清洗与分析,大幅提升数据处理效率。通过某美妆电商的实战案例,详细拆解从多平台数据整合到可视化报表生成的全流程,帮助电商从业者摆脱繁琐操作,聚焦业务增长,实现数据驱动的高效运营。
|
4月前
|
存储 安全 大数据
网安工程师必看!AiPy解决fscan扫描数据整理难题—多种信息快速分拣+Excel结构化存储方案
作为一名安全测试工程师,分析fscan扫描结果曾是繁琐的手动活:从海量日志中提取开放端口、漏洞信息和主机数据,耗时又易错。但现在,借助AiPy开发的GUI解析工具,只需喝杯奶茶的时间,即可将[PORT]、[SERVICE]、[VULN]、[HOST]等关键信息智能分类,并生成三份清晰的Excel报表。告别手动整理,大幅提升效率!在安全行业,工具党正碾压手动党。掌握AiPy,把时间留给真正的攻防实战!官网链接:https://www.aipyaipy.com,解锁更多用法!
|
2月前
|
Python
将Excel特定某列数据删除
将Excel特定某列数据删除
|
9月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
1663 10

热门文章

最新文章