gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 03:14:34 25 4
gpt4 key购买 nike

我有这个 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);

但是没有用。你知道我该怎么做吗?

最佳答案

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

修改VBScript函数为output the Result to screen (执行的命令输出流) 然后使用从调用 Runtime.getRuntime().exec(parms); 派生的 Process 对象检索它。

Process 对象有一个名为 getInputStream() 的方法,它应该允许您访问和读取脚本输出返回的值。

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

// Get Input Stream from the Process
BufferedReader is = new BufferedReader(new InputStreamReader(p.getInputStream()));

// Do something with stream, read etc.
String line;
while ((line = is.readLine()) != null)
System.out.println(line);

} catch (Exception ex) {
ex.printStackTrace();
}

有用的链接

关于java - 如何使用 Java 中的参数运行 VBS 函数并将结果分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42227978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com