Set objShell = CreateObject("WScript.Shell")
Dim cur
cur = "urpath to myVBS.vbs script"
WScript.Echo cur
ExcelMacroExample
Sub ExcelMacroExample()
Dim xlApp
Dim xlBook
Dim xlsFile
xlsFile = cur & "\myExcel.xlsm"
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(xlsFile)
xlApp.Run "moduleName"
xlApp.Save
xlApp.Quit
End Sub
# 1 楼答案
如果不能使用
JACOB
或COM4J
,可以制作一个Visual Basic脚本,并从Java程序中运行该脚本要创建脚本,请打开记事本并编写如下内容:
将其另存为
myVBS.vbs
,您可以从Java代码中这样调用它:# 2 楼答案
当工作表发生更改时,您也可以在excel中捕获事件,甚至可以调用任何宏,因此如果您想调用宏“Blue”,可以在隐藏的工作表中写入“Blue”,excel将捕获更改,捕获更改后,您可以查看编写的内容,并执行一些if-ifelse语句,以获取要为该实例调用的宏。不是很好的编码,但是一个简单的解决方法。不过我会自己做其他的方法
# 3 楼答案
我真的不明白你从数据库中的数据生成Excel表格的总体方法。通常,我会使用Vivek提出的ApachePOI
但是,如果确实需要在工作表中调用Excel宏,则需要两件事:
首先,您需要一个JAVA到COM的桥接器,比如JACOB、COM4J或类似的工具。如果它支持自动化接口就足够了。它不需要有完整的COM支持
第二,使用JAVA-to-COM桥,您应该启动Excel,加载Excel工作表,运行宏,保存并关闭Excel。因此,你必须称之为:
# 4 楼答案
适合我的解决方案: java代码:
myVBS。vbs脚本: