如何从Java代码调用Excel VBA宏?


问题内容

我需要根据通过Java从数据库中获取的数据生成Excel工作表。为此,我需要在生成Excel时调用一些VBA宏函数。有人可以帮助我如何从Java代码调用VBA宏吗?


问题答案:

我不太了解您从数据库中的数据生成Excel工作表的总体方法。通常,我会使用Vivek提出的Apache POI。

但是,如果您确实需要在工作表中调用Excel宏,则需要做两件事:

首先,您需要一个JAVA-COM桥,例如JACOBCOM4J或类似的工具。如果它支持自动化接口就足够了。它不需要完全的COM支持。

其次,使用JAVA-to-COM桥,您应该启动Excel,加载Excel工作表,运行宏,保存并关闭Excel。因此,您必须调用以下等效项:

Set Wb = Application.Workbooks.Open FileName
Application.Run MacroName
Wb.Save
Application.Quit