参考资料
推荐学习视频:https://space.bilibili.com/363834767/channel/collectiondetail?sid=1139008&spm_id_from=333.788.0.0
https://www.w3school.com.cn/js/index.asp
https://bbs.wps.cn/topic/9447
https://blog.csdn.net/huaermeier/article/details/128891646
https://blog.csdn.net/huaermeier/article/details/128891646
通过选项卡“帮助”(F1)
通过WPS开放平台
在WPS开放平台(https://open.wps.cn/)中“开发文档”中的“客户端开发”进入到WPS JS宏帮助中心。
https://open.wps.cn/previous/docs/client/wpsLoad
基础知识
打开宏编辑器和JS代码调试
工具-》开发工具-》WPS宏编辑器
左边是工程区,当打开多个excel时会有多个,要注意不要把代码写到其他工作簿去了
右边是代码区
宏是js语言,因此变量或者方法可以网上搜索。比如搜索js变量、js数组方法等。
在语句行号前面点击,可以打断点。
使用Console.log(“你好”)打印文字、变量值等
代码可以使用F11可以逐语句运行,使用F10可以逐过程运行,跳出等
也可以监视变量值
数据类型
数值分为整数和浮点数,都是number类型
var a=Math.trunc(5.984) //截取整数
var b=Math.random() //生成随机小数
var c=Math.pow(5,2) //乘幂
var d=Math.max(3,5) //求最大值
var d=Math.min(3,5) //求最小值
字符串是string类型
var a="3.14"
var b="hello\nworld"
var c=a+b //字符串相加,会变成字符串连接
字符串转数值
var a="3"
var b=5
b=Number(a)
数值转字符串
var a=3.14
var b=String(a)
进制转换
var a=12
var b=a.toString(2) //转换成二进制,结果为字符串类型
var b=a.toString(16) //转换成十六进制,结果为字符串类型
变量申明和赋值
变量有三种声明变量的方式const、var、let
const 常量
let 变量申明(作用域更小)
var 变量申明(作用域更大)
var a;//申明单个变量
var b,c,d;//申明多个变量
var e=1,f=2,g=3.2//申明多个变量并赋值数据类型
单元格读写、数组
Value() 方法 //只读
Value2 属性 只读取值 //可读写
Formula 属性 单元格有公式则读取公式 //可读写
获取A1:C6单元格区域的值,并将数据写入E1:G6单元格区域
//读取A1、A2单元格的值,两种方法
let str1 = Range('A1').Value()
let str2 = Range('A2').Value2
console.log(str1) //输出name
console.log(str2) //输出清风
//写入A1单元格
Range('A1').Value2 = '姓名'
//读取A1:B6单元格区域的值,获取的数据类型为二维数组
let arr = Range('A1:C6').Value2
//写入D1:E6单元格区域
Range('E1:G6').Value2 = arr
function 删除(){
Range("A6").Select();
Selection.Delete(); //删除数据
}
向单元格写入二维数组数据、另存为xlsx工作簿文件、另存为txt文本文件
Range.Resize(行数,列数),以某个单元格为起点扩展区域
user为二维数组,其中user.length表示一维长度,user[0].length表示二维长度
function writeData() {
const user = [
['name', 'sex', 'age'],
['清风', '男', 25],
['若雨', '男', 22],
['猫猫', '女', 18],
['童颜', '女', 22],
['茶季', '女', 21]
]
//A1:B6区域写入数据 Range('A1').Resize(6, 3).Value2 = user
Range('A1').Resize(user.length, user[0].length).Value2 = user
//let path = Env.GetDesktopPath() + '\\user' //获取桌面目录,Env对象仅支持WPS2024
let path = Application.DefaultFilePath + '\\user'
ActiveSheet.Copy() //复制工作表,如果Copy方法没有参数则默认新建一个工作簿
ActiveWorkbook.SaveAs(path, 20) //另存为txt文件,XlFileFormat枚举文件格式:xlTextWindows
ActiveWorkbook.SaveAs(path, 51) //另存为xlsx文件,XlFileFormat枚举文件格式:xlWorkbookDefault
//js字符串模板
MsgBox(`文件路径在: \n${
path}.txt \n${
path}.xlsx`)
}
选中以A1单元格为起点的连续非空白区域,复制到A8单元格
Range.CurrentRegion属性返回一个Range对象,该对象表示当前区域。当前区域是空白行和空白列的任何组合所限定的区域。此为只读属性。效果相当于快捷键 Ctrl + A 选定有效的数据区域。
let user