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;
	}
}

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ETL+BI结合的数据集成工具

在当今信息化时代&#xff0c;企业积累了大量的数据资产&#xff0c;如何高效地提取、转换和加载&#xff08;ETL&#xff09;这些数据&#xff0c;并将其转化为有用的洞察力成为了企业取得竞争优势的关键。同时&#xff0c;商业智能&#xff08;BI&#xff09;作为一种数据驱动…

ChatGPT等模型:到2026年,将消耗尽高质量训练数据

《麻省理工技术评论》曾在官网发表文章表示&#xff0c;随着ChatGPT等大模型的持续火热&#xff0c;对训练数据的需求越来越大。大模型就像是一个“网络黑洞”不断地吸收&#xff0c;最终会导致没有足够的数据进行训练。 而知名AI研究机构Epochai直接针对数据训练问题发表了一…

不受平台限制,Sketch 网页版震撼登场

Sketch 是一种基于 Mac 的矢量图形编辑器&#xff0c;可用于数字设计。其主要功能包括无损矢量编辑、完美像素精度和数百个插件同步功能&#xff0c;可导出预设和代码。它是目前流行的页面交互协作设计工具。但是 Sketch 最大的缺点是对 Windows/PC 用户不友好。严格来说&#…

CentOS添加开机启动

1.编写项目启动脚本&#xff08;run.sh&#xff09; #!/bin/bash-切换到程序所在路径 cd /home/cavs_install/app/cavs-admin/target/ # 等待其他组件启动完毕后再启动本项目&#xff08;如果不需要等待&#xff0c;本步骤可省略&#xff09; sleep 300 # 实际启动命令 nohup …

01:编译lua及C调用

我们今天在windows平台编译lua&#xff0c;生成 lua动态库,lua.exe&#xff0c;luac.exe 我把这个目录上传到giee&#xff0c;使用下面命令获取它: git clone gitgitee.com:jameschenbo/lua_c_application.git 或者直接访问:访问网页 目录结构如下&#xff1a; build.cmd 是…

Sass 安装

文章目录 前言SASS的系统要求安装Ruby例子后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;Sass和Less &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正在不断努力填补技术短板。(如果出现错误&…

编程题 :简单的洗牌算法的实现

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 目录 &#x1f324;️简单的洗牌算法…

大语言模型:以Amazon Titan等大语言模型为例介绍

大语言模型&#xff08;Large Language Model&#xff09;是一种人工智能技术&#xff0c;通过对海量文本数据进行训练&#xff0c;学习语言的结构、规则和语义&#xff0c;从而可以生成具有自然语言风格的文本或回答自然语言的问题。大语言模型一般基于神经网络技术&#xff0…

【深度学习】gan网络原理实现猫狗分类

【深度学习】gan网络原理实现猫狗分类 GAN的基本思想源自博弈论你的二人零和博弈&#xff0c;由一个生成器和一个判别器构成&#xff0c;通过对抗学习的方式训练&#xff0c;目的是估测数据样本的潜在分布并生成新的数据样本。 1.下载数据并对数据进行规范 transform tran…

界面控件DevExpress WPF流程图组件,完美复制Visio UI!(二)

DevExpress WPF Diagram&#xff08;流程图&#xff09;控件帮助用户完美复制Microsoft Visio UI&#xff0c;并将信息丰富且组织良好的图表、流程图和组织图轻松合并到您的下一个WPF项目中。 在上文中&#xff08;点击这里回顾>>&#xff09;&#xff0c;我们为大家介绍…

Spinnaker 基于 docker registry 触发部署

docker registry 触发部署 Spinnaker可以通过Docker镜像的变化来触发部署&#xff0c;这种方法允许你在Docker镜像发生变化时自动启动新的部署流程。 示例原理如下图所示&#xff1a; 以下是如何在Spinnaker中实现基于Docker Registry触发部署的配置流程。最终实现的效果如下…

Leetcode—167.两数之和 II - 输入有序数组【中等】

2023每日刷题&#xff08;四十一&#xff09; Leetcode—167.两数之和 II - 输入有序数组 实现代码 /*** Note: The returned array must be malloced, assume caller calls free().*/ int* twoSum(int* numbers, int numbersSize, int target, int* returnSize) {*returnSiz…

lv11 嵌入式开发 UART实验 11

目录 1 UART帧格式详解 1.1 UART简介 1.2 通信基础 - 并行和串行 1.3 通信基础 - 单工和双工 1.4 通信基础 - 波特率 1.5 UART帧格式 2 Exynos4412下的UART控制器 2.1 引脚功能设置 2.2 阅读芯片手册 3 UART寄存器详解 3.1 引脚寄存器 3.2 串口寄存器概览 3.3 ULC…

【Linux】 file命令使用

file命令 file命令用于辨识文件类型。 语法 file [参数] [文件名] who命令 -Linux手册页 命令选项及作用 执行令 file --help 执行命令结果 参数 -b  列出辨识结果时&#xff0c;不显示文件名称&#xff1b;-i&#xff1a;显示MIME类型&#xff1b;-z&#xff1a;对…

pycharm 怎么切换Anaconda简单粗暴

&#xff08;1&#xff09;创建一个环境 &#xff08;2&#xff09;选择一下自己conda的安装路径中conba.exe (3)选择存在的环境&#xff0c;一般会自动检测到conda创建有哪些环境&#xff0c;导入就行

MUI框架从新手入门【webapp开发教程】

文章目录 MUI -最接近原生APP体验的高性能前端框架APP开发3.25 开发记录miu框架介绍头部/搜索框&#xff1a;身体>轮播图轮播图设置数据自动跳转&#xff1a;九宫格图片九宫格图文列表底部选项卡按钮选择器手机模拟器 心得与总结&#xff1a;MUI框架在移动应用开发中的应用M…

【MATLAB源码-第91期】基于matlab的4QAM和4FSK在瑞利(rayleigh)信道下误码率对比仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 正交幅度调制&#xff08;QAM&#xff0c;Quadrature Amplitude Modulation&#xff09;是一种在两个正交载波上进行幅度调制的调制方式。这两个载波通常是相位差为90度&#xff08;π/2&#xff09;的正弦波&#xff0c;因此…

uniapp基础-教程之HBuilderX基础常识篇03

该内容为了大家更好的理解&#xff0c;将每个页面进行分离&#xff0c;单独创建项目&#xff0c;如在index中之写只写了一个搜索框&#xff0c;将其他页面分别放在HBuilderX目录中的components中&#xff0c;没有的可自行创建。 然后在components中创建轮播图新建一个swiper.v…

RWA+AI 叙事下的 ProsperEx,对 Web3 时代交易的重新定义

RWA&#xff08;Real World Assets&#xff09;即现实资产代币&#xff0c;其本质在于将现实世界中具有货币价值的东西转化为数字代币&#xff0c;使其可以在区块链上表现价值并进行交易。RWA 资产既可以包括有形资产&#xff0c;例如房产、珠宝、黄金等&#xff0c;也可以包无…

Python的控制流语句使用

Python的控制流语句使用 判断语句 if分支示意图语法介绍注意事项示例 for循环示意图语法介绍列表推导式示例 while循环与for的区别语法介绍示例 判断语句 if分支 示意图 单、双、多分支&#xff1a; 语法介绍 # 单分支 if condition:expression # 双分支 if condition:exp…