WPS Office JS宏实现批量处理Word中的表格样式

        由于本职工作原因,经常会用到office办公软件,经常很多内容审批后,需要统一修改内容或样式,如果Word文档中有上百页或上千页,则一个一个修改太麻烦了。

        在接触到WPSJS宏后,发现工作效率大大提升;如果你会前端开发,有JS基础上手会非常快;如果有VBA基础,就更得心应手了,因为对象和函数定义,基础是沿用office的VBA。

        其他不多说了, 先和大家分享下如何统一修改以上几个表格的样式。

        

一、打开宏编辑器

         首先,点击菜单栏上的“工具”,打开WPS JS宏编辑器,如下:

        然后,点击菜单栏下的“WPS 宏编辑器”,打编辑器窗口,如下图:

        最后,在编辑器“代码”处添加“宏”函数即可,如下图:

二、开始写宏

2.1 创建模块

        首先需要创建一个模块,用于定义宏函数,操作如下图,在“代码”上右击选择“插入”->“模块”即可。

  

2.2 定义宏函数

        会前端开发的朋友,肯定对function非常熟悉,不会的朋友也可以照葫芦画瓢即可实现想要效果。

2.3 获取表格及数量

        接下来,这里就不截图,直接贴代码了;先通过ActiveDocument获取当前需要执行的文档,再通过ActiveDocument.Tables获取表格数量。

/*** 修改表格样式*/
function 批量修改表格样式(){let tableCount = ActiveDocument.Tables.Count;console.log(tableCount);
}

        点击编辑器上执行按钮,即可选择当前宏函数,输出结果会在“立即窗口”中显示。

2.4 修改表格字体和大小

        这里需要注意的是,在前端开发中,JS数组索引都是从0开始的,但是WPS JS宏中,是从1开始的,如果从0开始执行中会报错无法正常执行。

        通过Tables的Item()方法,依次获取每个表格,并通过Select()函数选择指定的表格后,则可以使用Selection对象处理所选项目了。

/*** 修改表格样式*/
function 批量修改表格样式(){// 获取表格对象const TableObj = ActiveDocument.Tables;// 循环所有表格数据for(let i = 1; i <= TableObj.Count; i++){// 选择当前表格内容TableObj.Item(i).Select();// 设置字体样式(obj=>{obj.Name = "宋体";		// 修改字体obj.Size = 10.5;		// 修改字号})(Selection.Font);}
}

2.5 修改字段行高

        ParagraphFormat为段落的所有格式,行高可以通过对属性LineSpacing进行调整,代码如下:

/*** 修改表格样式*/
function 批量修改表格样式(){// 获取表格对象const TableObj = ActiveDocument.Tables;// 循环所有表格数据for(let i = 1; i <= TableObj.Count; i++){// 选择当前表格内容TableObj.Item(i).Select();// 设置字体样式(obj=>{obj.Name = "宋体";		// 修改字体obj.Size = 10.5;		// 修改字号})(Selection.Font);// 调整断落行高Selection.ParagraphFormat.LineSpacing = 18;}
}

2.6 WdParagraphAlignment枚举

        WdParagraphAlignment枚举可以指定段落的对齐方式,具体如下:

名称说明
wdAlignParagraphCenter1居中
wdAlignParagraphDistribute4段落字符被分布排列,以填满整个段落宽度
wdAlignParagraphJustify3完全两端对齐
wdAlignParagraphJustifyHi7两端对齐,字符高度压缩
wdAlignParagraphJustifyLow8两端对齐,字符轻微压缩
wdAlignParagraphJustifyMed5两端对齐,字符中度压缩
wdAlignParagraphLeft0左对齐
wdAlignParagraphRight2右对齐
wdAlignParagraphThaiJustify9按照泰语格式布局两端对齐

2.7 设置内容垂直居中

        修改段落居中样式,可使用 ParagraphFormat的Alignment属性进行修改,枚举值在2.6中已列出,根据需求设置即可。

/*** 修改表格样式*/
function 批量修改表格样式(){// 获取表格对象const TableObj = ActiveDocument.Tables;// 循环所有表格数据for(let i = 1; i <= TableObj.Count; i++){// 选择当前表格内容TableObj.Item(i).Select();// 设置字体样式(obj=>{obj.Name = "宋体";		// 修改字体obj.Size = 10.5;		// 修改字号})(Selection.Font);// 调整断落行高Selection.ParagraphFormat.LineSpacing = 18;// 垂直居中Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter;}
}

        这次就先介绍到这,希望以上内容对您有帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/174530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenAI神秘项目Q-star曝光,人类永生或灭绝,将在我们有生之年发生

上周&#xff0c;OpenAI人事风波暂停的尾声中&#xff0c;有个“可能威胁人类”的、代号为“Q*”的神秘项目被抛掷出来。 传言中&#xff0c;Sam Altman被解雇前&#xff0c;几名研究人员向董事会发了一封信&#xff0c;警告一项强大的人工智能发现可能威胁到人类&#xff0c;而…

前端入职环境安装

前端入职 后环境安装 &#xff0c;内函 nodenvmgit微信开发者工具vscode 的安装包 一.node安装-js运行环境 1.node下载&#xff0c;下载地址Node.js 2.配置淘宝镜像 npm config set registry https://registry.npmmirror.com/ 3.查看配置 npm config list 二.nvm安装-切…

力扣hot100 滑动窗口最大值 单调队列

&#x1f468;‍&#x1f3eb; 题目地址 &#x1f37b; AC code class Solution {public int[] maxSlidingWindow(int[] nums, int k){int n nums.length;int[] res new int[n - k 1]; // 单调递减队列int[] q new int[n];// q数组维护的是元素在 nums 数组对应的下标int…

C#开发的OpenRA游戏之属性SelectionDecorations(10)

C#开发的OpenRA游戏之属性SelectionDecorations(10) 前面分析了选择属性,继续分析前面的内容,不过这里不再是选择,而是选择相关的属性。 当用玩家选择地图上一个物品,或者士兵,或者坦克时,就会在周边画上一些指示标记,并且有一个状态条。 通过上图,可以看到建筑物周…

Linux(10):Shell scripts

什么是 Shell scripts shell script&#xff08;程序化脚本&#xff09;&#xff1a;shell 部分是一个文字接口下让我们与系统沟通的一个工具接口&#xff1b;script 是脚本的意思&#xff0c;shell script 就是针对 shell 写的脚本。 shell script 是利用 shell 的功能所写的…

通义灵码,你的智能编码助手,免费公测啦!

目录 ​编辑 1、介绍 2、安装 3、功能介绍 行/函数级实时续写 自然语言生成代码 单元测试生成 代码注释生成 代码解释 研发智能问答 多编程语言、多编辑器全方位支持 4、视频 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家…

Vue3 组合式API如何获取组件实例?

Vue3 组合式API如何获取组件实例&#xff1f; Vue2获取方式 在 Vue2 中&#xff0c;我们可以给组件设置 ref 属性后&#xff0c;就可以直接通过&#xff1a;this.$refs.HelloRef 来获取组件实例中所有的属性和方法 <template><Hello ref"HelloRef" />…

进程等待讲解

今日为大家分享有关进程等待的知识&#xff01;希望读完本文&#xff0c;大家能有一定的收获&#xff01; 正文开始&#xff01; 进程等待的引进 既然我们今天要讲进程等待这个概念&#xff01;那么只有我们把下面这三个方面搞明白&#xff0c;才能真正的了解进程等待&#x…

【中间件】配置中心中间件intro

中间件middleware 内容管理 why use 配置中心配置中心feature配置中心develop主流配置中心Apollo浅谈 本文从理论上介绍一下服务化中服务治理系统中的配置中心的理论并浅析Apllo 配置在生产中是很关键的一个部分&#xff0c;cfeng在work中遇到几次配置问题引发的问题&#xff0…

计算机基础知识59

MySQL的卸载流程 1、先停止MySQL服务&#xff1a;右键“此电脑”&#xff0c;选择“管理”&#xff0c;之后选择“服务和应用程序”--“服务”&#xff0c;在服务中找到“MySQL”&#xff0c;右键选择“停止”。 2、找到“控制面板”--“程序和功能”&#xff0c;找到MySQL&…

android项目之调用webview

目标 在Android项目中&#xff0c;经常需要使用WebView组件来展示网页或加载HTML内容 步骤 1. 在布局文件中添加WebView组件&#xff1a; <WebView android:id"id/webview" android:layout_width"match_parent" android:layout_height"mat…

springboot接入Spring State Machine实现状态机

描述 在 Spring Boot 中实现状态机&#xff0c;通常使用 Spring State Machine 框架进行实现。该框架可以帮助我们定义、创建和管理复杂的状态机。 接下来给出一个demo&#xff0c;说明如何使用 Spring State Machine 框架实现状态机。 假设我们需要实现一个简单的订单状态机&a…

SocialFi 和 GameFi 的碰撞 — Socrates 构建新的 Web3 流量入口

伴随着比特币现货 ETF 即将通过 SEC 批准的消息&#xff0c;整个加密市场在11月份达到了熊市以来的新高峰。市场普遍上涨&#xff0c;新的玩法和项目不断涌出吸引了大量老用户回归以及新用户加入。加密市场经过长期的低迷&#xff0c;终于来到了牛市的起点&#xff01; 上一轮牛…

Selenium 连接到现有的 Firefox 示例

当前环境&#xff1a; python 3.7 selenium 3.14.1 urllib3 1.26.8 Frefox 115.1.0esr(32位) geckodriver.exe 0.33.0 1 下载 Firefox 浏览器&#xff0c;根据自己的需要选择。 下载 Firefox 浏览器&#xff0c;这里有简体中文及其他 90 多种语言版本…

什么是依赖倒置原则

1、什么是依赖倒置原则 依赖倒置原则&#xff08;Dependency Inversion Principle&#xff0c;DIP&#xff09;是指高层模块不应该依赖于低层模块&#xff0c;它们都应该依赖于抽象。换句话说&#xff0c;具体类之间的依赖关系应该尽可能减少&#xff0c;而抽象类或接口之间的…

C语言自定义函数的整数处理

1.输入10个整数&#xff0c;将其中最小的数与第一个数对换&#xff0c;把最大的数与最后一个数对换。写三个函数&#xff1b; ①输入10个数&#xff1b;②进行处理&#xff1b;③输出10个数。 示例输入&#xff1a; 2 1 3 4 5 6 7 8 10 9 示例输出&#xff1a; 1 2 3 4 5 6…

Python交互式解释器及用法

为了让开发者能快速学习、测试 Python 的各种功能&#xff0c;Python 提供的“python”命令不仅能用于运行 Python 程序&#xff0c;也可作为一个交互式解释器一一开发者逐行输入 Python 代码&#xff0c;它逐行解释执行。 当输入“python”命令时&#xff0c;可以看到如下输出…

带你用uniapp从零开发一个仿小米商场_10. 首页开发

图标菜单栏开发 轮播图开发完成后,就是图标菜单栏了 可以看出这些图标都是一样的样式,所以可以勇哥flex布局让他们每个占百分之20 代码如下,既然都是一样的那就直接用个循环嵌套一下 data数据如下 同样,为了能让这段代码能在别的地方也用到,我直接把它封装成组件 <templ…

Spring 注解

Spring部分 声明bean的注解 Component: 组件&#xff0c;没有明确的角色在这里插入代码片Service: 在业务逻辑层使用&#xff08;service层&#xff09;Repository: 在数据访问层使用&#xff08;dao层&#xff09;Controller: 在展现层使用&#xff0c;控制器的声明&#xff0…

ClickHouse:真正的OLAP列式DBMS

ClickHouse 1、本文持续更新... 1、本文持续更新… ClickHouse官方文档&#xff1a;https://clickhouse.com/docs/zh