Есть ли OLE-автоматизация в Java? - PullRequest
7 голосов
/ 13 июля 2011

Можно ли использовать OLE-автоматизацию в Java?Если нет, то почему это невозможно в Java?

Я хочу автоматизировать экспорт электронных таблиц Excel в другом формате (например, .csv и т. Д.)

Спасибо заответы заранее:)

Ответы [ 4 ]

8 голосов
/ 23 апреля 2013

Недавно (март 2013 г.) независимый участник добавил поддержку универсальной автоматизации COM в JNA, которая является последним человеком, который выступил с точки зрения интеграции API нативной платформы из Java. JNA по-прежнему очень активно поддерживается, в отличие от Jawin / JACOB / и т.д.

См. здесь для примера того, как это используется. Предварительно подготовленные привязки к API-интерфейсам Office очень просты, но, глядя на код , кажется, что очень просто использовать API-интерфейсы COM Automation (IDispatch, Variant и т. Д.) Для позднего связывания с почти любой интерфейс COM.

Хотелось бы, однако, увидеть более полное связывание API-интерфейсов Office COM, поскольку они являются наиболее часто используемым COM-API в мире. Может быть, также могут быть «MSExcel2007.java», «MSExcel2010.java» и т. Д., Чтобы охватить различные версии API. Так что это в значительной степени незавершенная работа, но JNA теперь в целом полезна для автоматизации COM, как JACOB / Jawin, с бонусом, который поддерживается чрезвычайно активно (по состоянию на апрель 2013 года).

4 голосов
/ 13 июля 2011

Вы можете использовать JACOB .Но будет некоторая боль, так как она не очень хорошо задокументирована, а производительность не самая лучшая.Также может быть сложно правильно запустить его для вашей среды, в зависимости от того, какую версию Windows вы нацеливаете.Я бы определенно не использовал его, если вы создаете масштабируемое веб-приложение.Другим вариантом будет Apache POI , который действительно далек от своих ранних корней и используется во многих готовых к работе инструментах, таких как JBoss Drools.Если вы решили использовать JACOB, я рекомендую вам прочитать эту ветку SO:

Есть ли хорошая рекомендация по использованию OLE Automation (из Java)?

1 голос
/ 14 марта 2015

Коммерческие, но у них, похоже, есть бесплатная лицензия с открытым исходным кодом и академическая лицензия ...

JExcel

Документы разработчика JExcel

У меня нет принадлежности.

1 голос
/ 13 июля 2011

Существует библиотека под названием JACOB , которая позволяет именно то, что вы ищете.Что вы подразумеваете под "из Java API"?Вы имеете в виду из официальных пакетов J2SE?Я не уверен, как ответить на этот вопрос, кроме как сказать, что J2SE не включает библиотеки для всех мыслимых потребностей под солнцем, особенно те, которые работают только в одной операционной системе.Вот почему существуют сторонние пакеты.

...