在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连个论坛吐槽发帖反馈的地方都没有。也是服。