是否可以在Java中使用OLE自动化?如果没有,为什么在Java中不可能?
我希望自动导出不同格式的excel电子表格(例如.csv等...)
提前感谢您的回答:)
答案 0 :(得分:8)
最近(2013年3月),一位独立撰稿人向JNA增加了对通用COM自动化的支持,JNA是最后一位从Java本机平台API集成的人。与Jawin / JACOB /等不同,JNA仍然非常积极地维护。
有关如何使用的示例,请参阅here。到目前为止,对Office API的预先绑定非常简单,但是查看the code,使用COM Automation API(IDispatch,Variant等)进行后期绑定到几乎任何COM接口似乎都很容易
然而,我希望看到Office COM API的更完整绑定,因为它们是迄今为止世界上最常用的COM API。也许还有一个“MSExcel2007.java”,“MSExcel2010.java”等,以涵盖不同的API版本。因此,这是一项正在进行中的工作,但JNA现在对于COM自动化通常与JACOB / Jawin一样有用,其奖励非常积极地维护(截至2013年4月)。
答案 1 :(得分:4)
您可以使用JACOB。但是会有一些痛苦,因为它没有很好地记录,并且性能不是最好的。根据您所针对的Windows版本,也很难让它为您的环境正常运行。如果您正在构建可伸缩的Web应用程序,我绝对不会使用它。另一种选择是Apache POI,它从早期的根源开始已经走了很长一段路,并被用于很多生产就绪的工具,如JBoss Drools。如果您决定使用JACOB,那么我建议您阅读此SO主题:
Is there a good reference for using OLE Automation (from Java)?
答案 2 :(得分:1)
有一个名为JACOB的库可以准确地找到您要查找的内容。你是什么意思“来自Java API?”你的意思是来自官方的J2SE包吗?我不确定如何回答这个问题,而不是说J2SE不包含针对阳光下每个可能需要的库,特别是那些仅适用于单个操作系统的库。这就是第三方包存在的原因。
答案 3 :(得分:1)