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

news2025/1/11 9:57:27

        由于本职工作原因,经常会用到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.coloradmin.cn/o/1260173.html

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

相关文章

Python字典合并

合并两个有部分key相同的字典&#xff0c;相同key保留两个字典中对应key的较大值。 (笔记模板由python脚本于2023年11月27日 18:12:15创建&#xff0c;本篇笔记适合熟悉Python字典的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Fr…

Rust内存布局

题图忘了来自哪里.. 整型,浮点型,struct,vec!,enum 本文是对 Rust内存布局 的学习与记录 struct A { a: i64, b: u64,}struct B { a: i32, b: u64,}struct C { a: i64, b: u64, c: i32,}struct D { a: i32, b: u64, c: i32, d: u64,}fn main(…

eclipse - jee 建立项目后没有 web.xml

eclipse -- jee 建立项目后没有 web.xml 处理它的方法是&#xff0c;点 File - New - Dynamic Web Project , 此时起一个项目名如M4 然后next 然后next 出现如此所示:

【办公类-18-03】(Python)教师研讨表批量制作(学校、姓名、回答1-3)

背景需求&#xff1a; 领导发给我一个word版本的“研讨表”&#xff1a; “随便你做成什么样子&#xff0c;最后能有个二维码给老师们填写反馈就可以了” 我看了看内容&#xff0c;这和我以前做的“闵行区教师信息技术2.0培训作业”完全相同 “OK&#xff0c;我用问卷星收集教…

第二节HarmonyOS DevEco Studio创建项目以及界面认识

一、创建项目 如果你是首次打开DevEco Studio&#xff0c;那么首先会进入欢迎页。 在欢迎页中单击Create Project&#xff0c;进入项目创建页面。 选择‘Application’&#xff0c;然后选择‘Empty Ability’&#xff0c;单击‘Next’进入工程配置页。 配置页中&#xff0c;详…

【Java并发】聊聊不安全的HashMap以及ConcurrentHashMap

在实际的开发中&#xff0c;hashmap是比较常用的数据结构&#xff0c;如果所开发的系统并发量不高&#xff0c;那么没有问题&#xff0c;但是一旦系统的并发量增加一倍&#xff0c;那么就可能出现不可控的系统问题&#xff0c;所以在平时的开发中&#xff0c;我们除了需要考虑正…

深度学习中小知识点系列(六) 解读SPP / SPPF / SimSPPF / ASPP / RFB / SPPCSPC

SPP与SPPF 一、SPP的应用的背景 在卷积神经网络中我们经常看到固定输入的设计&#xff0c;但是如果我们输入的不能是固定尺寸的该怎么办呢&#xff1f; 通常来说&#xff0c;我们有以下几种方法&#xff1a; &#xff08;1&#xff09;对输入进行resize操作&#xff0c;让他…

跨标签页通信的8种方式(下)

跨标签页通信是指在浏览器中的不同标签页之间进行数据传递和通信的过程。在传统的Web开发中&#xff0c;每个标签页都是相互独立的&#xff0c;无法直接共享数据。然而&#xff0c;有时候我们需要在不同的标签页之间进行数据共享或者实现一些协同操作&#xff0c;这就需要使用跨…

算法刷题-动态规划3(未完待续---------

算法刷题-动态规划3&#xff09; 01背包问题最后一块石头的重量 01背包问题 一篇文章吃透背包问题 大佬讲解什么是背包问题 问题分析&#xff1a; 面对这么多的物品&#xff0c; 选择一个个地来装入背包&#xff0c;背包的承重量不断地增加&#xff0c;二维数组中&#xff0c;…

Linux系统编程:文件系统总结

目录和文件 获取文件属性 获取文件属性有如下的系统调用&#xff0c;下面逐个来分析。 stat:通过文件路径获取属性&#xff0c;面对符号链接文件时获取的是所指向的目标文件的属性 从上图中可以看到stat函数接收一个文件的路径字符串&#xff08;你要获取哪个文件的属性&a…

ubuntu 下载编译 opencv4.2.0并检验

如有帮助点赞收藏关注&#xff01; 如需转载&#xff0c;请注明出处&#xff01; ubuntu 的opencv4.2.0下载与编译 下载依赖开始编译安装配置OpenCV编译环境检验* 完成 下载 首先下载opencv源码网址&#xff1a; https://opencv.org/releases/page/3/ 下载成zip后&#xff0c;…

GPIO的使用--操作PF09 PF10 PF08实现呼吸灯、跑马灯、警报闪烁灯

先来个呼吸灯演示 呼吸灯 目录 一、GPIO的介绍 1.含义 2.控制原理 3.控制流程 二、LED控制 1.呼吸灯 操作代码 烧录结果 2.蜂鸣器红绿灯交替 操作代码 3.红绿灯交替闪烁 操作代码 一、GPIO的介绍 1.含义 GPIO(general porpose intput output),通用输入输出端口。…

Java游戏 王者荣耀

GameFrame类 所需图片&#xff1a; package 王者荣耀;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.util.ArrayList…

分布式事务-两阶段提交2PC

2PC协议就是两阶段提交&#xff0c;用来解决分布式事务&#xff0c;分为两个阶段&#xff0c;分别为Prepare和Commit&#xff0c;也是PC由来。 第一阶段Prepare 提交事务请求 如图所示&#xff0c;主要流程有以下三个方面 询问&#xff1a;事务协调者(Manager)向所有的事务参与…

SpringBoot : ch06 整合 web(二)

前言 SpringBoot作为一款优秀的框架&#xff0c;不仅提供了快速开发的能力&#xff0c;同时也提供了丰富的文档和示例&#xff0c;让开发者更加容易上手。在本博客中&#xff0c;我们将介绍如何使用SpringBoot来整合Web应用程序的相关技术&#xff0c;并通过实例代码来演示如何…

C++值常用集合算法

C值常用集合算法 set_intersection #include<iostream> using namespace std; #include<vector> #include<numeric> #include<algorithm>class MyPrint { public:void operator()(int val){cout << val<<" ";} };void test() {v…

电力感知边缘计算技术网关产品设计方案-硬件方案

网关硬件架构设计图: 1.配置方案 配置差异 A类网关 B类网关 CPU

Postman接口测试 —— 设置断言和集合运行

一、常见的5种断言方法 Postman是一款非常强大的API接口调式工具&#xff0c;它自带断言方法&#xff0c;不需要学习JavaScript脚本&#xff0c;非常方便。 &#xff08;1&#xff09;Status code&#xff1a;Code is 200(校验接口返回结果的状态码) &#xff08;2&#xff09…

室内定位(WiFi/UWB/蓝牙等)技术方案概述

室内无法搜索到卫星&#xff0c;这样常规的GPS/北斗定位都无法使用&#xff0c;常规免费的只有运营商的基站定位LBS&#xff0c;但这个精度实在太差&#xff0c;一般都有几十米到几百米的偏差。因此&#xff0c;室内定位一直是个老大难问题。 截至目前&#xff0c;业界比较成熟…

C++:对象模型和this指针

对象模型&#xff1a; 成员变量和成员函数分开存储 在C中&#xff0c;类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 空对象占用空间&#xff1a; 1字节 C编译器会给每个空对象也分配一个字节空间&#xff0c;是为了区分空对象占内存的位置 每个…