1

我想用 ActiveX 打开和操作 Excel 文件。我在其他项目上使用 Python 的Win32 扩展和 Groovy 的Scriptom库取得了成功,但如果可能的话,这次需要做的是纯 Java。

我已经尝试过Jacob Java COM Bridge,但这似乎并不那么简单或易于使用,而且我无法用它来检索单元格值(即使这是 Scriptom 底层的库)。有替代品吗?

4

4 回答 4

4

雅各布真的是这里工作的工具。我建议您花时间了解一下 COM 和 ActiveX 的工作原理,我想您会发现它更易于使用。COM 是一个相当大的成就,但它很难。像 VB 这样的包装器使它看起来很容易(对于它们工作的有限用途),但它一点也不容易。我有一本关于学习 COM 的好书,但现在手头没有名字......

您想了解 IDispatch 接口(这是大多数 Excel 的 COM 接口围绕它开发的)。这是一个令人讨厌的、讨厌的界面(其中一种病毒式的东西,你可以用它做很多事情,以至于无法判断实际发生了什么)——但学习它是关键。

如果您只在一个领域遇到问题(即从单元格中获取值),您可以获取 Scriptom 的源代码并查看它们的作用(毕竟是开源的!)。

另一个建议是尝试在 VBA 中实现代码的一些测试用例,并确保您正确考虑了所有返回值。当我们在我们的一个 Java 应用程序中进行 Excel 自动化时,我们从 Word 的 VBA 中实现了通用算法,解决了问题案例等......之后,转移到 Jacob 非常简单。

  • ķ
于 2008-10-08T01:19:05.297 回答
0

http://www.nevaobject.com/_docs/_java2com/java2com.htm怎么样——这是商业的,但效果更好。

于 2008-10-07T23:10:22.700 回答
0

你看过 JExcelAPI 吗?这是一个直接读取和写入 Excel 文件的 Java 库,而不是使用 ActiveX。

不是对您的问题的确切答案,但它也可以解决问题,特别是如果您正在寻找纯 Java 解决方案。

于 2008-10-08T00:08:16.263 回答
0

还有JIntegra,它做类似的事情。也是商业的。还有JNIWrapper,它做了类似的事情。再次,也是商业的。

于 2008-10-08T01:07:53.837 回答