8

是否可以在 Java 中使用 OLE 自动化?如果不是,为什么在 Java 中不可能?

我正在寻找以不同格式(即 .csv 等...)自动导出 excel 电子表格

提前感谢您的回答:)

4

4 回答 4

9

最近(2013 年 3 月),一位独立贡献者向 JNA 添加了对通用 COM 自动化的支持,这是最后一个从 Java 集成本机平台 API 的人。与 Jawin/JACOB/etc 不同,JNA 仍然非常积极地维护。

有关如何使用它的示例,请参见此处。到目前为止,与 Office API 的预绑定绑定非常简单,但查看代码,使用 COM 自动化 API(IDispatch、Variant 等)对几乎任何 COM 接口进行后期绑定似乎非常容易。

不过,我希望看到更完整的 Office COM API 绑定,因为它们是迄今为止世界上最常用的 COM API。也许还可以有一个“MSExcel2007.java”、“MSExcel2010.java”等来涵盖不同的 API 版本。因此,这是一项正在进行中的工作,但 JNA 现在对于 COM 自动化与 JACOB/Jawin 一样普遍有用,而且它的维护非常积极(截至 2013 年 4 月)。

于 2013-04-22T20:15:47.483 回答
4

您可以使用JACOB。但是会有一些痛苦,因为它没有很好的记录并且性能不是最好的。根据您所针对的 Windows 版本,也很难让它在您的环境中正确运行。如果您正在构建可扩展的 Web 应用程序,我绝对不会使用它。另一种选择是Apache POI,它已经从早期的根源中走了很长一段路,并被用于许多生产就绪工具,如 JBoss Drools。如果您决定使用 JACOB,那么我建议您阅读此 SO 线程:

是否有使用 OLE 自动化(来自 Java)的良好参考?

于 2011-07-13T13:46:58.820 回答
1

商业,但他们似乎有一个免费的开源和学术许可证......

JExcel

JExcel 开发人员文档

我没有隶属关系。

于 2015-03-14T15:20:51.670 回答
1

有一个名为JACOB的库可以准确地提供您正在寻找的内容。“来自 Java API”是什么意思?你的意思是来自官方的 J2SE 包?我不知道如何回答这个问题,只是说 J2SE 不包括满足所有可能需要的库,尤其是那些只在单一操作系统上工作的库。这就是存在第三方软件包的原因。

于 2011-07-13T13:40:10.883 回答