WPS表格 JSA 学习笔记 - 批量设置表格

Posted 笑虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPS表格 JSA 学习笔记 - 批量设置表格相关的知识,希望对你有一定的参考价值。

WPS表格 JSA 学习笔记 - 批量设置表格

创建表格样式

function 创建表格样式(styleName = "表格")

	try
		ActiveDocument.Styles.Item(styleName).Delete();
	catch(e)
		Console.log("样式不存在");
	
	ActiveDocument.Styles.Add(styleName, wdStyleTypeParagraph);
	(obj=>
		obj.SpaceBefore = 0.5;
		obj.SpaceAfter = 0.5;
		obj.IndentCharWidth(0);
		obj.IndentFirstLineCharWidth(0);
		obj.BaseLineAlignment = wdBaselineAlignBaseline;
		obj.Alignment = wdAlignParagraphCenter;
	)(ActiveDocument.Styles.Item(styleName).ParagraphFormat);

创建表格样式();

批量设置表格

function 批量设置表格(begin, end)
	// 关闭屏幕更新,提升执行效率
	Application.ScreenUpdating = false;
	
	// 遍历当前文档所有表格
	[...ActiveDocument.Tables]
		.filter((v,i)=>i>=begin&&i<=end)
		.forEach(table=>
		// ------------ 设置样式 ------------
		table.Style = "网格型";											// 表格样式
		table.Range.Style = "表格";										// 表格文字样式
		// ------------ 设置单元格边距 ------------
//        table.TopPadding = PixelsToPoints(0, true);						// 设置上边距为0
//        table.BottomPadding = PixelsToPoints(0, true);					// 设置下边距为0
//        table.LeftPadding = PixelsToPoints(0, true);					// 设置左边距为0
//        table.RightPadding = PixelsToPoints(0, true);					// 设置右边距为0
//        table.Spacing = PixelsToPoints(0, true);						// 允许单元格间距为0
		// ------------ 设置表格背景色 ------------
		table.Shading.ForegroundPatternColor = wdColorAutomatic;		//表格底纹前景色自动
		table.Shading.BackgroundPatternColor = wdColorAutomatic;		//表格底纹背景色自动
		
		// --------------- 设置表格线 ---------------
		//https://qn.cache.wpscdn.cn/encs/doc/office_v19/topics/WPS 基础接口/文字 API 参考/枚举/WdBorderType 枚举.html
		[wdBorderTop,wdBorderLeft,wdBorderBottom,wdBorderRight,wdBorderHorizontal,wdBorderVertical]
			.map(v=> table.Borders.Item(v)) 							// 将 WdBorderType 枚举转换成 Border 对象
			.forEach(border=>
				border.LineStyle = wdLineStyleSingle;					// 边框样式
				border.LineWidth = wdLineWidth050pt;					// 边框线宽
				border.Color = wdColorBlack;							// 边框颜色
			);

		// --------------- 设置表头 ---------------
		(row=>
			row.Range.Font.Bold = true; 									// 文字加粗
			row.Range.Font.BoldBi = true;									// 右对齐文字也加粗
			row.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter; 	// 文字居中
			row.Range.ParagraphFormat.LineUnitBefore = 1;					// 段前一行
			row.Range.ParagraphFormat.LineUnitAfter = 1;					// 段后一行
			row.Cells.Shading.BackgroundPatternColor = wdColorGray10; 		// 表格背景色 10% 灰色底纹
		)(table.Rows.First);
		
		// 重复标题行
		table.Rows.HeadingFormat = true;
		
		// --------------- 自动调整表格 ---------------
        table.Columns.PreferredWidthType = wdPreferredWidthAuto;		// 基于当前所选内容自动选择要使用的度量单位
        table.AutoFitBehavior(wdAutoFitWindow);							// 根据窗口调整表格

	);	
	
	// 开启屏幕更新
    Application.ScreenUpdating = true;
    Console.log('批量设置表格完成。');

批量设置表格(8, 31);

返回当前表格索引

function 返回当前表格索引()
	var arr = [...ActiveDocument.Tables];
	var len = arr.length;
	var index = arr.findIndex(table=> Selection.Range.InRange(table.Range));
	Console.log(`当前表格索引【$index】,最大索引【$len-1`);
	return [index,len];
 

参考资料

WPS 客户端开发文档
word vba设置表格样式

以上是关于WPS表格 JSA 学习笔记 - 批量设置表格的主要内容,如果未能解决你的问题,请参考以下文章

WPS表格 JSA 学习笔记 - 批量设置图片

WPS表格 JSA 学习笔记 - 批量设置图片

WPS表格 JSA 学习笔记 - 设置自定义编号

WPS表格 JSA 学习笔记 - 设置自定义编号

WPS表格 JSA 学习笔记 - 实现设置编号并添加到自定义选项卡

WPS表格 JSA 学习笔记