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