本帖最后由 liucqa 于 2019-5-21 13:37 编辑
在网页采集中,很多时候需要运行网站下载的某个js文件中的函数,以计算Request参数。VBA直接运行JS函数有很多办法,常见的是通过msscriptcontrol.scriptcontrol或者htmlfile。 在这里,我提供另外一种比较灵活可控的方式来运行js函数。 C#可以调用很多js引擎来执行js代码,比较流行的有Jurassic,Jint , Nlua, ClearScript,IronJS,IKVM.NET等很多引擎。如果VBA可以通过C#调用这些引擎,那么我们就可以灵活的运行js函数了。 考虑il本身支持export导出函数接口,所以我做了一个C# dll(无需注册,直接调用运行),可以以API方式运行其中的函数来执行指定的js函数,并取回结果。 下面提供了一个VBA的调用示例,其它原生语言也可以参考VBA示例来调用这个dll。
运行环境:.NET Framework 4.5.2或更高。 在Windows10 64位和32位下测试通过。
函数声明:
VBA示例运行结果(参数调用有两个例子,一个是字符串方式,一个是Variant方式)
****************************** 有问题可以随时联系我
|