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

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

准备工作

女儿二年级了,开始学习乘法,天天回家背一篇九九乘法口决表。暂时还没人投稿,所以就想到用九九乘法表来做一个实例吧,也算有点小小的用处。

实现这个口算法分三个步骤:

  1. 创建一张新的工作表,命名为"9X9";
  2. 从 A1 的位置开始打印剩法表;
  3. 乘法表之外的那个部分标上绿色(纯为了演示用)。

Office加载项是使用Web技术构建的,与 Excel 进行交互,这要还是靠 Javascript 语言。选择 JavaScript 语言花了点时间,最后确认使用 TypeScript,更接近于 C# ,确实要好用多了。

image.png

九九乘法表

【创建工作表】

创建工作表,还是花了不少时间,毕境还是不太习惯。最后是在 OfficeHelpers 空间中找到了,这点是跟 VBA/VSTO 不一样的地方,但是一通百通,明白了就 OK 了,下回专门为这个空间作个介绍吧,代码如下:

OfficeHelpers.

ExcelUtilities.

forceCreateSheet(context.workbook, "9X9");

【打印乘法表】上一课也讲了如何为单元格赋值,有了上课的基础,这里的代码就不是问题了。再加上一个循环就能 OK 了,而且循环的语法与 TypeScript 基本一致,关键代码如下:sheet.getCell(i, j).values = [[fmlTxt]];

【标注颜色】同样是一个循环,加上了一点格式处理的代码:.format.fill.color = "green";
selectionRange.format.autofitColumns();

Excel.run(async function (context) {
 //创建工作表 const sheet = await OfficeHelpers. ExcelUtilities. forceCreateSheet(context.workbook, "9X9"); sheet.activate();
 //打印剩法表 for (var i = 0; i < 9; i++) { for (var j = 0; j < 9; j++) { var fmlTxt = (i + 1).toString() + " * " + (j + 1).toString() + " = " + ((i + 1) * (j + 1)).toString(); sheet.getCell(i, j).values = [[fmlTxt]]; } }
 //标注颜色 var selectionRange = sheet.getRange("a1:i9"); selectionRange.format.fill.clear();
 for (var i = 0; i < 9; i++) { for (var j = 0; j < 9; j++) { if (i < j) { selectionRange.getCell(i, j) .format.fill.color = "green"; } } }
 selectionRange.format.autofitColumns();
 await context.sync();}).catch(OfficeHelpers.Utilities.log);


小技巧

无法执行:在编辑状态时,无法执行代码,按个回车退出下。

image.png

context.sync

在 OfficeJS 的 API 示例代码中,总能看到这样一句代码:

await context.sync();


从官网上查询一番,得到的意思大概是这样的,之前的代码只是添加到内部的执行队列中,并未真正执行,直到并等待被“更新”,context.sync() 便是此意,暂且称之为同步函数。而且文档中还提到,应该尽量减少同步函数的调用次数。每个 sync 都会造成宿主应用程序(此处是 Excel)的额外开销,尤期是在 Office Online 时,成本更是大大增加了。

今天的代码,主要是解决一个编程习惯的问题,去找一些现成的 VBA 代码去改造成 Web Add-ins 插件,或是个不错的主意

目录索引

  • 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的基础操作(一)
165 0
业务数据分析-Excel的基础操作(一)
Script Lab 07:引入控件,Excel 基础操作(5)
Script Lab 07:引入控件,Excel 基础操作(5)
254 0
Script Lab 07:引入控件,Excel 基础操作(5)
|
JavaScript 前端开发 API
Script Lab 06:事件处理,Excel 基础操作(4)
Script Lab 06:事件处理,Excel 基础操作(4)
197 0
Script Lab 06:事件处理,Excel 基础操作(4)
|
算法 JavaScript C#
Script Lab 版,九九乘法表,Excel 基础操作(2)
Script Lab 版,九九乘法表,Excel 基础操作(2)
225 0
Script Lab 版,九九乘法表,Excel 基础操作(2)
|
前端开发 UED
尝试:Script Lab,Excel 基础操作(1)
尝试:Script Lab,Excel 基础操作(1)
659 0
尝试:Script Lab,Excel 基础操作(1)
|
1月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
123 10
|
3月前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
187 4
|
13天前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
5月前
|
关系型数据库 MySQL Shell
不通过navicat工具怎么把查询数据导出到excel表中
不通过navicat工具怎么把查询数据导出到excel表中
58 0
|
3月前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
183 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档