娱乐观察员 發表於 2021-3-2 10:44:00

wps中开始支持javascript了

<p>在wps最新的测试版中支持开始撸javascript了。今天测试了一下,结果还行。目前主要问题是不知道怎么调用第三方js库。也没看到什么相关的官方文档。</p>
<p>如果不做设置的话,wps每次启动时候会默认进入到vb宏模式.</p>
<p><img src="https://img2020.cnblogs.com/blog/1540286/202103/1540286-20210303161106688-473756118.png"></p>
<p>&nbsp;</p>
<p>这时候你需要点击开发工具选项卡上的“切换到js宏”选项才能进入js宏模式。</p>
<p>&nbsp;<img src="https://img2020.cnblogs.com/blog/1540286/202103/1540286-20210303161151819-2122139906.png"></p>
<p>&nbsp;</p>
<p>&nbsp;如果你想每次直接进入js宏模式,通过文件---选项 进行设置。</p>
<p><img src="https://img2020.cnblogs.com/blog/1540286/202103/1540286-20210303161520265-1072825428.png"></p>
<p>&nbsp;</p>
<p>&nbsp;先来做一个js宏测试一下:</p>
<p><img src="https://img2020.cnblogs.com/blog/1540286/202103/1540286-20210302102133599-1223220454.jpg"></p>
<p>下面展示一下在单元格里面引用javascript自定义函数。</p>
<p>wps javascript编辑器里面输入下面代码:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">function 日期()
{
        return ""+new Date()       
}
</pre>
</div>
<p>  在单元格里面直接引用日期函数:</p>
<p><img src="https://img2020.cnblogs.com/blog/1540286/202103/1540286-20210302102233439-170376120.jpg"></p>
<p>读取单元格:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">function 读取单元格()
{
        alert(Sheets.Item(1).Range("A1").Value2)
        alert(Sheets.Item("123").Range("A1").Value2)
}
</pre>
</div>
<p> 结果:</p>
<p><img src="https://img2020.cnblogs.com/blog/1540286/202103/1540286-20210302103336721-555395451.png"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;写入数据到单元格里:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">function 写入单元格()
{
        Sheets.Item(1).Range("A1:B1").Value2='fanxiaolei'

}
</pre>
</div>
<p> 结果:</p>
<p><img src="https://img2020.cnblogs.com/blog/1540286/202103/1540286-20210302103650128-657586814.png"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;写入一维数组到单元格里:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">function 写入一维数组()
{
        arr=
        Sheets.Item(1).Range("A1").Resize(1,arr.length).Value2=arr

}
</pre>
</div>
<p> 结果:</p>
<p><img src="https://img2020.cnblogs.com/blog/1540286/202103/1540286-20210302104003475-228383526.png"></p>
<p>&nbsp;</p>
<p>&nbsp;二维数组的话写入不能直接一次性写入。我自己实验的时候是遍历里面每个一维数组一次性写入。</p>
<p>&nbsp;类的使用:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">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())
}
</pre>
</div>
<p> 结果:</p>
<p><img src="https://img2020.cnblogs.com/blog/1540286/202103/1540286-20210302141726609-1049765251.png"></p>
<p>&nbsp;</p>
<p>&nbsp;试了一下ES6的语法可以使用:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">function pp()
{
       
       let arr= ['a','b','c']
        for(let n of arr)
        {
                Console.log(n)
        }
}

function setdemo()
{
const s = new Set();
for (let i of s) {
Console.log(i);
}
}
</pre>
</div>
<p>&nbsp;</p>
<p>目前我估计功能应该没有全部完成。部分vba里面的东西也能使用。像application对象,worksheetfunction里的函数都能使用。msgbox也能用。</p>
<p>看着和vba差不多。但是我们可以看到没有工作表的代码窗口。目前仅能使用applicaion和workbook级别对象的事件,针对具体sheet级别的事件没有。等到正式版发布,有官方文档才更好研究具体的细节。</p>
<p>不得不说wps连个论坛吐槽发帖反馈的地方都没有。也是服。</p><br><br>
来源:https://www.cnblogs.com/FanXiaoLei/p/14467748.html
頁: [1]
查看完整版本: wps中开始支持javascript了