用exceldna封装了一个Eval函数,调用的是ms的jscript,没有什么ribbon界面,就一个函数.主要用于在wps的js宏里面在com对象操作上做一个补充吧。在网络和本地操作方面束手无策的时候可以换条路试试。下面展示一下运用。
function comobject(){
var s=`var xl=new ActiveXObject('Excel.Application');
var b=xl.Version;
xl.Quit();
b`;
var result= Application.Run("Eval",s)
console.log(result)
}
function scriptcontroluseexample(){
var s=`var sc=new ActiveXObject('Scriptcontrol');
sc.Language='Jscript';
sc.AddCode('var a={"范生":15,"张三":12};');
var b=sc.eval('a["张三"]');b`
var result= Application.Run("Eval",s)
console.log(result)
}

function 剪切板数据(){
let ss= '"WPS JSA"'
var s=`var html=new ActiveXObject('htmlfile');
var owin= html.parentWindow;
var a=owin.clipboardData.setData("text",${ss});
a`;
//console.log(s)
var r=Application.Run("Eval",s);
Range("A1").PasteSpecial(xlPasteAll)
}
增加了文本读写追加函数、使用方法如下:

fso文件操作:

function test(){
let str =`var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.CreateTextFile("D:/file.txt", true);
f1.WriteLine("This is a test.");
f1.Close();`;
Application.Run('Eval', str);
}
连接access数据库(wps依赖32位的access database engine),返回数组:
function 连接数据库(){
var s=`var cnstr="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\mytest.mdb;";
var cn = new ActiveXObject("ADODB.Connection");
cn.Open(cnstr);
var rs=cn.Execute("select * from 考试成绩")
var c=rs.GetRows();
cn.Close();c`;
let x=Application.Run("Eval",s);
Console.log(''+x)
}
fso获取文件的创建日期:
function 获取文件创建日期(){
let strFile=ThisWorkbook.Path.replace(/\\/g,"/")+'/1.png'
var s=`var fso=new ActiveXObject("Scripting.FileSystemObject");
var f=fso.GetFile("${strFile}");
var r=f.DateCreated;r`;
console.log(s)
let x =WorksheetFunction.Text(Application.Run("Eval",s),"yyyy-MM-dd HH:mm:ss")
console.log(x)
}
wps没有64位版本。excel本身就是com操作,所以64位的我就不发了。32位版本的xll压缩附件:点击下载
浙公网安备 33010602011771号