在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連個論壇吐槽發帖反饋的地方都沒有。也是服。
