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

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

准备工作

今天开始做一个 Word 的例子。基础部分是相同的,区别仅仅在于 Word API 的部分。还记得第一次我们代码的第一行从 Excel.run 开始,这里相应要换成 Word.run 。其它部分均是相同的,包括所有的引用,区别只在 Word 对像本身了。

本次示例的代码是将一个段落拆分为单词范围,然后遍历所有范围以格式化每个单词,从而产生“卡拉OK”效果。以下是源码地址(如果无法打开,请参考前期06的技巧提示部分):

https://gist.github.com/JuaneloJuanelo/92d7b4978e3487fc593a39a7a8128a30


运行效果

image.png

代码

【代码解析】

取得段落:

let paragraph = context.document.body.paragraphs.getFirst;

拆分单词:

let words = paragraph.split([" "], true , true);

改变颜色:

words.items[i - 1].font.highlightColor = "#FFFFFF";

words.items[i].font.highlightColor = "#FFFF00";

延时效果:

await pause(200);

【全部代码】


$("#setup").click( => tryCatch(setup));
$("#highlight").click( => tryCatch(highlightWords));
async function highlightWords 
{ 
 await Word.run(async (context) => 
 { 
 let paragraph = context.document.body.paragraphs.getFirst; 
 let words = paragraph.split([" "], true /* trimDelimiters*/, true /* trimSpaces */); 
 words.load("text"); 
 await context.sync; 
 for (let i = 0; i < words.items.length; i++) 
 { 
 if (i >= 1) 
 { 
 words.items[i - 1].font.highlightColor = "#FFFFFF"; 
 } 
 words.items[i].font.highlightColor = "#FFFF00"; 
 await context.sync; 
 await pause(200); 
 } 
 });
}
function pause(milliseconds) 
{ 
 return new Promise((resolve) => setTimeout(resolve, milliseconds));
}
async function setup 
{ 
 await Word.run(async (context) => 
 { 
 context.document.body.clear; 
 context.document.body.insertParagraph( "Video provides a powerful way to help you prove your point. When you click Online Video, you can paste in the embed code for the video you want to add. You can also type a keyword to search online for the video that best fits your document.", "Start" );
 context.document.body.paragraphs .getLast .insertText( "To make your document look professionally produced, Word provides header, footer, cover page, and text box designs that complement each other. For example, you can add a matching Online cover page, header, and sidebar. Click Insert and then choose the Online elements you want from the different Online galleries.", "Replace" ); 
 await context.sync; });
}
async function tryCatch(callback) 
{ 
 try 
 { 
 await callback; 
 } catch (error) 
 { 
 OfficeHelpers.UI.notify(error); 
 OfficeHelpers.Utilities.log(error); 
 }
}

【代码图示】

image.png

后记

有一段非常重要的代码,前面没有提到:

words.load("text");


这里是与 VBA/VSTO 不同的地方。我们先来看一下,如有注释掉这句代码会怎么样?

PropertyNotLoaded: 属性“items”不可用。读取属性的值之前,请先对包含对象调用 load 方法,再对关联的请求上下文调用 "context.sync"。


对于读回 Word 数据,所有的对象都有一个特殊命令 object.load(properties) 。而其中的 “text” 正是 word 对象下的 text 属性。其实一次可以加入多个属性,鉴于这个部分相对复杂,以后专题介绍,目前只需注意:避免加载不需要的属性

相关文章
|
Linux Windows
Windows文件直接上传到Linux
Windows文件直接上传到Linux
352 0
|
Android开发
Android通过scaleType裁剪缩放图片适配不同屏幕不同ImageView尺寸
Android通过scaleType裁剪缩放图片适配不同屏幕不同ImageView尺寸 实验方法,先找一张不规则大图,尺寸:1024pix(宽) X  1465pix(高),原图如图:然后特意设置一个ImageView宽高均为600pix。
2527 0
|
18天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
34833 46
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
12天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
11754 36
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
7天前
|
人工智能 JavaScript Ubuntu
低成本搭建AIP自动化写作系统:Hermes保姆级使用教程,长文和逐步实操贴图
我带着怀疑的态度,深度使用了几天,聚焦微信公众号AIP自动化写作场景,写出来的几篇文章,几乎没有什么修改,至少合乎我本人的意愿,而且排版风格,也越来越完善,同样是起码过得了我自己这一关。 这个其实OpenClaw早可以实现了,但是目前我觉得最大的区别是,Hermes会自主总结提炼,并更新你的写作技能。 相信就冲这一点,就值得一试。 这篇帖子主要就Hermes部署使用,作一个非常详细的介绍,几乎一步一贴图。 关于Hermes,无论你赞成哪种声音,我希望都是你自己动手行动过,发自内心的选择!
2462 25
|
30天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
45744 157
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
6天前
|
人工智能 弹性计算 安全
Hermes Agent是什么?怎么部署?超详细实操教程
Hermes Agent 是 Nous Research 于2026年2月开源的自进化AI智能体,支持跨会话持久记忆、自动提炼可复用技能、多平台接入与200+模型切换,真正实现“越用越懂你”。MIT协议,部署灵活,隐私可控。
1701 3

热门文章

最新文章

下一篇
开通oss服务