参考文件:

  • 1.wps开放平台 WPS 开放平台
  • 2.微软word接口 Word (WdColor) | Microsoft Docs

1.打开wps,找到开发工具,切换到js环境,图中已经切换到js了所以显示的是切回vb

2.打开wps宏编辑器 编写第一个函数

上图里面的函数是用录制宏生成的,不靠谱,使用下面这个函数

function helloWPS(){Console.log("hello wps!!");
}function helloWorld(){alert("hello wps");
}function helloWorld2(){Debug.Print("hello world2!!")
}

3. 运行此函数

光标定位在哪一个函数内部,点击运行或F5,会运行此函数。如果不在任何一个函数内,会弹出面板让用户选择运行哪一个!  此函数作用在当前文档上,测试时要在测试文档上运行!!

4.在文档中运行此函数

选择刚才的函数,运行。

5.录制宏

有时需要编写功能但不知道从和下手,点击录制宏,进行操作,再点击停止后可生成参考代码。

此功能不能完全相信,比如录制时按住ctrl进行跨段多选,其生成的代码不能重现用户操作。

6.常用输出信息的方法:


Console.log("调试信息1") //在wps编辑器中首字母需大写
Debug.Print("hello world2!!") //在wps编辑器中首字母需大写
alert("调试信息3")
Console.clear() //清空所有日志

7. 示例脚本

由于我所编写的word文档中表格有130多个,且每个表格的内容都在20-30行左右,需要对表格进行格式化,插入数据等。

以下是我使用的脚本


7.1 给每个表格的第一行加上底色

function changeColorForFirstRowOfEachTable(){//去除所有表格第一行的阴影部分let count = Application.ActiveDocument.Tables.Count;for(let i=1;i<count;i++){let table = Application.ActiveDocument.Tables.Item(i);// 颜色参考 https://docs.microsoft.com/zh-cn/office/vba/api/word.wdcolortable.Rows.Item(1).Cells.Shading.BackgroundPatternColor = wdColorGray30}
}

7.2 每个表格的单元格进行处理 => 去掉首位空格 、去掉收尾回车 、居中

/*三重循环,有点恶心了,但是没办法
*/
function editCellsForTable(){//清理日志Console.clear()let count = Application.ActiveDocument.Tables.Count;for(let i=1;i<=count;i++){let table = Application.ActiveDocument.Tables.Item(i);let rowCount = table.Rows.Count;for(let j=1;j<=rowCount;j++){let rowContent = table.Rows.Item(j);let cellCount = table.Rows.Item(j).Cells.Count;for (let k=1;k<=cellCount;k++){// 获取每一行的celsslet cell = table.Rows.Item(j).Cells.Item(k);let textVal = cell.Range.Text;Console.log("|"+textVal+"|")// 去空格  去换行符 let val = textVal.replace(/[\r\n]/g,"").replace(/(^\s*)|(\s*$)/g, "");cell.Range.Text=val}}// 选中整个table  进行居中Selection.SetRange(table.Range.Start,table.Range.End);Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter;}
}

7.3 格式化每一个table的表头

思路: 选中某一行,点击格式刷,再应用到其他行

function formatTableRowExceptionFirst(){//选中某一行  此数据时由录制宏中生成的函数中摘取Selection.SetRange(4511, 4544);//复制选中行格式Selection.CopyFormat();//准备遍历表格let tabNum =   Application.ActiveDocument.Tables.Count;for(let i=100;i<tabNum;i++){//当前表格let currTab = ActiveDocument.Tables.Item(i);let rowNum = currTab.Rows.Count;for(let j=2;j<=rowNum;j++){let rowRange =     currTab.Rows.Item(j).Range;//选中此行,应用样式Selection.SetRange(rowRange.Start,rowRange.End);Selection.PasteFormat()}}
}

WPS下 宏使用js编写及一些脚本相关推荐

  1. wps宏编程js宏编辑器之代码调试讲解

    继前几篇wps js宏编程基础知识,wps开放平台就js宏编辑器的介绍说明,es6基本语法讲解后,相信大家对wps js宏编程有了一定认识,已经会用js在wps表格中实现一些简单的功能,编写js宏代码 ...

  2. wps中VBA宏与js宏的区别

    VBA宏与js宏的区别,异同 一. JSAPI接口的差异 1. 方法的差异 (1) vb的方法可以不加括号,但jsapi中所有的方法都需要加括号,如果方法不加括号会被js语法判定为属性. vb:复制 ...

  3. wps - 使用宏来为每行标记序号

    在WPS中遇到需要加序号的虽然可以用项目符符号来标注# 但或许用宏更厉害一些 WPS 的宏是一种自动化工具,可以通过编写宏代码来自动执行一些操作,例如创建和编辑文档.打印.格式化等. WPS 宏的编写 ...

  4. node.js编写网页_为Node.js编写可扩展架构

    node.js编写网页 by Zafar Saleem 通过Zafar Saleem 为Node.js编写可扩展架构 (Writing Scalable Architecture For Nodejs ...

  5. filter vue 循环_详解在Vue.js编写更好的v-for循环的6种技巧

    在vuejs中,v-for循环是每个项目都会使用的东西,它允许您在模板代码中编写for循环. 在最基本的用法中,它们的用法如下. {{ product.name }} 但是,在本文中,我将介绍六种方法 ...

  6. 这是用原声js编写的地址选择器,使用select编写的三联选择器

    这是用原声js编写的地址选择器,使用select编写的三联选择器 <!DOCTYPE html> <html lang="en"> <head> ...

  7. Windows下安装node.js(npm) git+vue

    Windows下安装git+node.js+npm+vue 放到统一大文件夹下 下载node.js http://nodejs.cn/ npm是随同NodeJS一起安装的包管理工具,能解决NodeJS ...

  8. 6.pixi.js编写的塔防游戏(类似保卫萝卜)-游戏资源打包逻辑

    游戏说明 一个用pixi.js编写的h5塔防游戏,可以用electron打包为exe,支持移动端,也可以用webview控件打包为app在移动端使用 环境说明 cnpm@6.2.0 npm@6.14. ...

  9. 使用Breeze.js编写更好的查询

    Agbonghama Collins对这篇文章进行了同行评审. 感谢所有SitePoint的同行评审人员使SitePoint内容达到最佳状态! 数据量正在迅速增长,并且维护变得越来越复杂. 许多开发人 ...

  10. breeze.linalg_使用Breeze.js编写更好的查询

    breeze.linalg Agbonghama Collins对这篇文章进行了同行评审. 感谢所有SitePoint的同行评审员使SitePoint内容达到最佳状态! 数据量正在Swift增长,并且 ...

最新文章

  1. ActionScript 3.0 Step By Step系列(五):走在面向对象开发的路上,以类为基础去思考编程问题...
  2. 解决git 提交出现这个错误fatal: Unable to create ‘project_path/.git/index.lock‘: File exists.
  3. iTunes备份注意
  4. 任务调度之Elastic-Job1
  5. 批量删除推文_如何搜索(和删除)您的旧推文
  6. ROJECT SERVER如何与OUTLOOK集成使用
  7. Error:-81024 LR_VUG:The 'QTWeb' type is not supported on win32 platforms
  8. 默认情况下安装的应用程序C盘后提示权限不足,当你开始介意。。。
  9. cad截图软件_AutoCAD电气制图协会线上CAD学习打卡活动结束
  10. 百度网盘超大容量100t、500t操作方法,轻松扩容如此简单,扩容工具,占位文件,免虚拟机
  11. OSChina 周五乱弹 —— 源花?真土鳖,我要开源小仙女!
  12. 证件照背景颜色怎么用手机换
  13. 直板android智能手机,小巧又精悍 3大系统直板全键盘手机搜罗
  14. 腾讯云直播代码 java_JAVA 对接腾讯云直播的实现
  15. 关于Office365邮箱附件大小限制问题
  16. 微信分享连接个别手机、ios转发不显示图片的,缩略图不出来
  17. rm: cannot remove `/usr/local/tmp/‘: Directory not empty
  18. 《MATLAB智能算法超级学习手册》一一1.3 符号变量的应用
  19. 据说看完这21个故事的人,30岁前都成了亿万富翁
  20. 自动化测试框架如果都总结成这样,人人都能学好

热门文章

  1. 西部数据硬盘不同色彩的含义
  2. css div居中对齐
  3. 7个顶级静态代码分析工具
  4. 微信公众号支付报错:当前页面的url未注册
  5. 小程序tabBar图标显示太大
  6. 国际化中的翻译工具poedit
  7. Python 技术篇-pyHook键盘鼠标监听事件,监测鼠标键盘按键实例演示
  8. CS231n——机器学习算法——线性分类(上: 线性分类器)
  9. AD学习之旅(1)— Altium Designer 16 软件下载与安装
  10. QT信号与槽机制与事件机制的区别