在使用Jacob时,可以使用Solver外接程序从java代码中获得excel吗?
我发现了这个,但我不知道如何使用这个javascript示例,并使用Jacob而不是http://bytes.com/topic/javascript/answers/693863-using-excel-solver-web-page-using-javascript
发布于 2014-03-21 00:59:16
如果您可以在Excel中将其记录为宏,我认为您将能够使用JACOB调用它。我打开录音机,得到了这个,所以它似乎是可记录的(虽然我不知道任何具体的解决办法)。
Sub Macro1()
Application.Left = 94
Application.Top = 668.5
AddIns("Solver Add-in").Installed = True
SolverOk SetCell:="$A$1", MaxMinVal:=1, ValueOf:=0, ByChange:="$A$1", Engine:=1 _
, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$A$1", MaxMinVal:=1, ValueOf:=0, ByChange:="$A$1", Engine:=1 _
, EngineDesc:="GRG Nonlinear"
SolverSolve
End Sub我怀疑SolverOk和SolverSolve将被“运行”对Excel对象模型操作的调用,类似于这样(SolverSolve项目的TableReader.java的第340行);这些行在Excel中调用特定的宏。
public String GetQuickTab ( int row1, int row2, int col1, int col2, int vis ) {
Variant v = Dispatch.call ( Application.xa, 0x103 /* "Run" */, "QuickRDA.JavaCallBacks.GetQuickTab", this, row1, row2, col1, col2, vis );
if ( v == null || v.isNull () )
return null;
return v.getString ();
}字符串"QuickRDA.JavaCallBacks.GetQuickTab“告诉Run方法要调用什么宏: QuickRDA为我的外接程序指定VBA项目名称,JavaCallBacks是该项目中的模块名,GetQuickTab是该模块中的函数名。(Application.xa是雅各布ActiveX对象引用。)
如果您需要查看如何使用JACOB导航Excel对象模型的示例,请查看我的一些开放源代码。JEB是一个依赖JACOB的,它提供了一个特定于Excel对象模型的访问层。https://github.com/erikeidt/JEB。我的一些其他项目使用JEB (例如QuickRDA),在这里,您可以看到通过JEB访问Excel的一些例子。
https://stackoverflow.com/questions/22546870
复制相似问题