首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JACOB从java调用Excel的解决程序

使用JACOB从java调用Excel的解决程序
EN

Stack Overflow用户
提问于 2014-03-20 22:54:14
回答 1查看 869关注 0票数 0

在使用Jacob时,可以使用Solver外接程序从java代码中获得excel吗?

我发现了这个,但我不知道如何使用这个javascript示例,并使用Jacob而不是http://bytes.com/topic/javascript/answers/693863-using-excel-solver-web-page-using-javascript

EN

回答 1

Stack Overflow用户

发布于 2014-03-21 00:59:16

如果您可以在Excel中将其记录为宏,我认为您将能够使用JACOB调用它。我打开录音机,得到了这个,所以它似乎是可记录的(虽然我不知道任何具体的解决办法)。

代码语言:javascript
复制
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中调用特定的宏。

代码语言:javascript
复制
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的一些例子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22546870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档