Java中是否有OLE自动化?

8

在Java中是否可以使用OLE自动化?如果不行,为什么Java不支持它呢?

我想要自动导出Excel电子表格到不同的格式(如.csv等)。

提前感谢您的答案 :)


我曾经使用过nevaobject,但那是十年前的事了。 - Tom Hawtin - tackline
4个回答

9
最近(2013年3月),一位独立的贡献者为JNA添加了对通用COM自动化的支持,这是Java中本地平台API集成的最后一块拼图。与Jawin/JACOB等不同,JNA仍然得到积极维护。
点击此处查看如何使用它的示例。目前,预定义的与Office API的绑定非常简单,但是查看代码,似乎很容易使用COM自动化API(IDispatch、Variant等)来进行后期绑定到几乎任何COM接口。
然而,我希望看到更完整的Office COM API绑定,因为它们是全球使用最频繁的COM API。也许还可以有“MSExcel2007.java”、“MSExcel2010.java”等来涵盖不同的API版本。因此,这仍然是一个正在进行中的工作,但是截至2013年4月,JNA现在与JACOB/Jawin一样普遍适用于COM自动化,并且得到了极大的积极维护。

4
你可以使用JACOB。但是,由于它没有很好的文档说明且性能不佳,因此可能会有一些困难。根据你所针对的Windows版本,使其正确运行也可能很难。如果你正在构建可扩展的Web应用程序,则绝对不要使用它。另一个选择是Apache POI,它已经发展了很长时间,并被用于许多生产就绪的工具,如JBoss Drools。如果你决定使用JACOB,那么我建议你阅读这个SO线程:Is there a good reference for using OLE Automation (from Java)?

使用脚本语言会比 Java 更容易吗? - Shahab
如果你对解决方案有灵活性,我会选择VB脚本或PowerShell。 - Perception

1

有一个名为JACOB的库可以精确地实现您要查找的功能。您所说的“来自Java API”的意思是什么?您是指来自官方J2SE包吗?我不确定如何回答这个问题,除了说J2SE没有包含每个可能需要的库,尤其是那些只适用于单个操作系统的库。这就是为什么第三方库存在的原因。


我猜我原本希望Sun/Oracle已经完成了它。使用脚本语言会更容易吗?而不是Java。 - Shahab
取决于你的目标。如果你想要集成一个现有的Java应用程序和现有的Java库,我建议你继续使用Java。 - Dan

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接