在wps最新的测试版中支持开始撸javascript了。今天测试了一下,结果还行。目前主要问题是不知道怎么调用第三方js库。也没看到什么相关的官方文档。
如果不做设置的话,wps每次启动时候会默认进入到vb宏模式.

这时候你需要点击开发工具选项卡上的“切换到js宏”选项才能进入js宏模式。

如果你想每次直接进入js宏模式,通过文件---选项 进行设置。

先来做一个js宏测试一下:

下面展示一下在单元格里面引用javascript自定义函数。
wps javascript编辑器里面输入下面代码:
function 日期()
{
return ""+new Date()
}
在单元格里面直接引用日期函数:

读取单元格:
function 读取单元格()
{
alert(Sheets.Item(1).Range("A1").Value2)
alert(Sheets.Item("123").Range("A1").Value2)
}
结果:

写入数据到单元格里:
function 写入单元格()
{
Sheets.Item(1).Range("A1:B1").Value2='fanxiaolei'
}
结果:

写入一维数组到单元格里:
function 写入一维数组()
{
arr=[1,3,'hello',"world"]
Sheets.Item(1).Range("A1").Resize(1,arr.length).Value2=arr
}
结果:

二维数组的话写入不能直接一次性写入。我自己实验的时候是遍历里面每个一维数组一次性写入。
类的使用:
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
toString() {
return '(' + this.x + ', ' + this.y + ')';
}
}
function 类的使用()
{
let a=new Point(3,4)
alert(a.toString())
}
结果:

试了一下ES6的语法可以使用:
function pp()
{
let arr= ['a','b','c']
for(let n of arr)
{
Console.log(n)
}
}
function setdemo()
{
const s = new Set([2, 3, 5, 4, 5, 2, 2]);
for (let i of s) {
Console.log(i);
}
}
目前我估计功能应该没有全部完成。部分vba里面的东西也能使用。像application对象,worksheetfunction里的函数都能使用。msgbox也能用。
看着和vba差不多。但是我们可以看到没有工作表的代码窗口。目前仅能使用applicaion和workbook级别对象的事件,针对具体sheet级别的事件没有。等到正式版发布,有官方文档才更好研究具体的细节。
不得不说wps连个论坛吐槽发帖反馈的地方都没有。也是服。
浙公网安备 33010602011771号