我有这个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);
但它没有用。你知道我怎么能这样做?
答案 0 :(得分:1)
您需要使用cscript.exe
而不是wscript.exe
,它们都是相同的主机,但其中一个是为GUI而设计的,而另一个是为命令行设计的。
修改VBScript函数以将Result
输出到屏幕(已执行的命令输出流),然后使用从调用Process
派生的Runtime.getRuntime().exec(parms);
对象检索它
有一个名为Process
的{{1}}对象的方法,它允许您访问和读取脚本输出返回的值。
getInputStream()