我想用ActiveX打开和操作Excel文件。我已经在其他项目中成功地使用了Python和Groovy的Scriptom库,但如果可能的话,这一次需要使用纯Win32 Extensions。
我已经尝试过Jacob Java COM Bridge,但它看起来并不简单易用,而且我无法让它检索单元格值(尽管这是Scriptom底层的库)。还有别的选择吗?
发布于 2008-10-08 01:19:05
雅各布确实是这项工作的得力助手。我建议您花点时间了解一下COM和ActiveX的工作原理,我想您会发现它更容易使用。COM是一个相当大的成就,但它很难。像VB这样的包装器使它看起来很容易(对于它们工作的有限用途),但它一点也不容易。我有一本关于学习COM的好书,但现在还没有名字……
您想要了解IDispatch接口(这是大多数Excel接口开发的基础)。这是一个令人讨厌的、令人讨厌的界面(这是一种病毒般的东西,你可以用它做很多事情,以至于无法分辨到底发生了什么)-但学习它是关键。
如果你只在一个方面有问题(比如从一个单元格获取一个值),你可以获取Scriptom的源代码,看看他们做了什么(毕竟是开源的!)。
另一个建议是尝试在VBA中实现代码的一些测试用例,并确保正确地考虑了所有返回值。当我们在一个Java应用程序中执行Excel自动化时,我们从Word的VBA中实现了通用算法,解决了问题案例,等等。在那之后,转到雅各布是相当简单的。
发布于 2008-10-07 23:10:23
http://www.nevaobject.com/_docs/_java2com/java2com.htm怎么样--这是商业化的,但效果更好。
发布于 2008-10-08 00:08:16
你看过JExcelAPI吗?这是一个直接读写ActiveX文件的Java库,而不是使用Excel。
对您的问题不是一个确切的答案,但它可能也能很好地解决问题,特别是如果您正在寻找一个纯Java解决方案。
https://stackoverflow.com/questions/180784
复制相似问题