Есть ли OLE-автоматизация в Java?

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

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

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


person Shahab    schedule 13.07.2011    source источник
comment
Я использовал nevaobject, но это было более десяти лет назад.   -  person Tom Hawtin - tackline    schedule 13.07.2011


Ответы (4)


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

Есть ли хороший справочник по использованию OLE-автоматизации ( с Java)?

person Perception    schedule 13.07.2011
comment
было бы проще использовать язык сценариев, как предполагается, Java - person Shahab; 13.07.2011
comment
Если у вас есть гибкость с решением, я бы выбрал сценарий VB или Powershell. - person Perception; 13.07.2011

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

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

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

person allquixotic    schedule 22.04.2013

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

person Dan    schedule 13.07.2011
comment
я думаю, я надеялся, что солнце / оракул сделали бы это. Было бы проще использовать язык сценариев? вместо джавы - person Shahab; 13.07.2011
comment
Зависит от вашей цели. Если вы пытаетесь интегрировать существующее приложение Java и существующие библиотеки Java, я бы остановился на Java. - person Dan; 13.07.2011

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

JExcel

Документы для разработчиков по JExcel

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

person kervin    schedule 14.03.2015