如何获取活动Excel电子表格的名称并将其传递到Java中?

如何获取活动Excel电子表格的名称并将其传递到Java中?,java,apache-poi,Java,Apache Poi,我正在开发一个需要与Excel集成的Java应用程序 在测试Java应用程序时,我可以硬编码excel工作簿名称,并可以执行所有需要的操作 但是,目的是打开excel工作簿并运行vb宏,该宏启动Java代码并用活动工作簿名称填充FileInputStream名称,而不是硬编码工作簿名称 我需要做的是: 在Java中,以某种方式获取当前活动excel工作簿的名称和路径作为文本字符串,并在我的代码中使用它来代替硬编码的名称,因为这样做的目的是让它在各种工作簿上运行 我无法通过ApachePOI找到这

我正在开发一个需要与Excel集成的Java应用程序

在测试Java应用程序时,我可以硬编码excel工作簿名称,并可以执行所有需要的操作

但是,目的是打开excel工作簿并运行vb宏,该宏启动Java代码并用活动工作簿名称填充FileInputStream名称,而不是硬编码工作簿名称

我需要做的是:

在Java中,以某种方式获取当前活动excel工作簿的名称和路径作为文本字符串,并在我的代码中使用它来代替硬编码的名称,因为这样做的目的是让它在各种工作簿上运行

我无法通过ApachePOI找到这样做的方法

似乎只有getSheetName方法可用

或者,我也可以让vb以字符串的形式获取当前工作簿的名称,但我不确定如何将该字符串传递到Java中用作工作簿名称字符串变量

这是唯一的症结所在,java代码中的所有其他内容都按照我所希望的方式运行


任何建议都将不胜感激。

如果您的VB宏真的要启动Java程序,那么您可以将工作簿名称指定为命令行参数。它将使用String[]参数传递到Java程序的主方法中

有关更多详细信息,请参阅本文档:


如果VB宏确实要启动Java程序,那么可以将工作簿名称指定为命令行参数。它将使用String[]参数传递到Java程序的主方法中

有关更多详细信息,请参阅本文档:


如果您的意思是想要活动工作表,那么工作簿类中有一个getActiveSheetIndex方法,因此您可以将其与getSheetName结合使用

除非您希望在调用java程序的Excel中打开工作簿xls的实际路径,否则您可能希望将工作簿文件的名称作为参数传递给java可执行文件

例如,在VB中: Application.ActiveWorkbook.Path将为您获取活动工作簿路径

我的VB有点生锈,但我想它会是这样的:

Call Shell("java YourJavaProgram" & Application.ActiveWorkbook.Path)

您可以参考user506069的答案来获取Java端的参数。

如果您的意思是想要活动工作表,工作簿类中有一个getActiveSheetIndex方法,因此您可以将该方法与getSheetName相结合

除非您希望在调用java程序的Excel中打开工作簿xls的实际路径,否则您可能希望将工作簿文件的名称作为参数传递给java可执行文件

例如,在VB中: Application.ActiveWorkbook.Path将为您获取活动工作簿路径

我的VB有点生锈,但我想它会是这样的:

Call Shell("java YourJavaProgram" & Application.ActiveWorkbook.Path)
您可以参考user506069的答案来获取Java端的参数

Call Shell("java YourJavaProgram" & Application.ActiveWorkbook.Path)