WPS的JS宏实现删除某级标题下的所有内容

server/2024/10/11 0:57:12/

想要删除Word文档中,包含特定描述的标题下所有内容(包含各级子标题以及正文描述)。

例如下图中,想删除1.2.1.19.1业务场景下所有内容:

简单版:

删除光标停留位置的大纲级别下所有的内容。实现的JS代码如下:

ActiveWindow.ActivePane.View.Type = wdOutlineView;if(Selection.ParagraphFormat.OutlineLevel != wdStyleNormal)
{//删除本大纲级别下的所有内容ActiveWindow.ActivePane.View.ShowHeading(Selection.ParagraphFormat.OutlineLevel);				Selection.Paragraphs.Item(1).Range.Select();Selection.Delete(wdCharacter,1);
}	ActiveWindow.ActivePane.View.Type = wdNormalView;

其中,指定视图类型WdViewType 枚举类型说明如下:

名称说明
wdMasterView5主控视图。
wdNormalView1普通视图。
wdOutlineView2大纲视图。
wdPrintPreview4打印预览视图。
wdPrintView3页面视图。
wdReadingView7阅读视图。
wdWebView6Web 视图。

进阶版:

查找指定的文本,文本如果为标题,则删除该标题下所有的子标题和文本内容。实现的JS代码参考如下:

function 删除标题内容()
{findStr = "业务场景";ActiveWindow.ActivePane.View.Type = wdOutlineView;while(1){Selection.Find.Forward = true; Selection.Find.Text = findStr;Selection.Find.Wrap = wdFindAsk;ActiveWindow.ActivePane.View.ShowAllHeadings();let re = Selection.Find.Execute(findStr, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, wdReplaceNone, undefined, undefined, undefined, undefined);if(re == false){Selection.HomeKey(wdStory,wdMove);	ActiveWindow.ActivePane.View.Type = wdNormalView;MsgBox("无法找到您查找的内容:"+findStr,jsOKOnly,"提示");return;}	else{			if(Selection.ParagraphFormat.OutlineLevel != wdStyleNormal){//删除本大纲级别下的所有内容ActiveWindow.ActivePane.View.ShowHeading(Selection.ParagraphFormat.OutlineLevel);				Selection.Paragraphs.Item(1).Range.Select();Selection.Delete(wdCharacter,1);}	}		}}


http://www.ppmy.cn/server/129881.html

相关文章

解决IDEA中@Autowired红色报错的实用指南:原因与解决方案

前言: 在使用Spring Boot开发时,Autowired注解是实现依赖注入的常用方式。然而,许多开发者在IDEA中使用Autowired时,可能会遇到红色报错,导致代码的可读性降低。本文将探讨导致这种现象的原因,并提供几种解…

微服务获取用户信息和OpenFeign传递用户

问题一: 网关已经完成登录校验并获取登录用户身份信息。但是当网关将请求转发到微服务时,微服务又该如何获取用户身份呢? 由于网关发送请求到微服务依然采用的是Http请求,因此我们可以将用户信息以请求头的方式传递到下游微服务…

Oracle EBS中 税务报告 模块的财务流程概览

Oracle E-Business Suite (EBS) 中的税务报告模块是企业用来管理税务相关流程的关键组件,与PO、AP、AR模块的关系非常紧密,它支持从税款计算、申报到支付的全过程。这个模块帮助企业确保其税务操作符合当地法律法规,并能够高效地处理复杂的税…

Unity3D Shader的阴影部分法线效果详解

在Unity3D开发中,阴影处理是提升场景真实感和视觉质量的重要一环。法线贴图(Normal Mapping)作为一种高效的纹理映射技术,在增强模型表面细节和凹凸感方面扮演着重要角色。本文将详细解析UnityShader中阴影部分的法线效果&#xf…

Ubuntu 22.04.4 LTS更换下载源

方法1:使用图形界面更换下载源 1. 打开软件和更新应用 2. 在Ubuntu 软件标签中,点击“下载自”旁边的下拉菜单,选择“其他” 3. 点击“选择最佳服务器”来自动选择最快的服务器 4. 选择服务器 5. 确定并关闭窗口,系统会提示您重新…

【redis-06】redis的stream流实现消息中间件

redis系列整体栏目 内容链接地址【一】redis基本数据类型和使用场景https://zhenghuisheng.blog.csdn.net/article/details/142406325【二】redis的持久化机制和原理https://zhenghuisheng.blog.csdn.net/article/details/142441756【三】redis缓存穿透、缓存击穿、缓存雪崩htt…

【d61】【Java】【力扣】【递归】3304. 找出第 K 个字符 I

思路 递归考虑:就像正常一样想出来思路,然后递归调用的地方,当作一个已经确定的量(可直接说一个值,这样就不会一直向下层想) 注意绝对不要在递归调用的地方一直往下层想,绝对不要,…

高级java每日一道面试题-2024年10月1日-服务器篇[Redis篇]-Redis数据结构压缩列表和跳跃表的区别?

如果有遗漏,评论区告诉我进行补充 面试官: Redis数据结构压缩列表和跳跃表的区别? 我回答: 关于Redis数据结构的理解是一个重要的考察点,特别是压缩列表(ziplist)和跳跃表(skiplist)这两种数据结构&…