如何使用Java中的参数运行VBS函数并将结果分配给变量

时间:2017-02-14 13:53:50

标签: java excel excel-vba vbscript vba

我有这个excel宏:

Function Calculate_Something(StartDate As Date, EndDate As Date) As Double

//some math is here, not important

Calculate_Something = Result
End Function

我想将我的日期传递给这个宏,在我的Java程序中执行它,最后获得返回值并将其分配给我在Java中的值。

我已经使用此函数创建了VBS脚本,并尝试在Java中执行它:

 String[] parms = {"wscript", "calc.vbs", "2017-02-06 09:38:36", "2017-02-06 12:47:41"};
 Runtime.getRuntime().exec(parms);

但它没有用。你知道我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您需要使用cscript.exe而不是wscript.exe,它们都是相同的主机,但其中一个是为GUI而设计的,而另一个是为命令行设计的。

修改VBScript函数以将Result输出到屏幕(已执行的命令输出流),然后使用从调用Process派生的Runtime.getRuntime().exec(parms);对象检索它

有一个名为Process的{​​{1}}对象的方法,它允许您访问和读取脚本输出返回的值。

getInputStream()

有用的链接