8

JavaでOLEオートメーションを使用することは可能ですか?そうでない場合、なぜJavaでは不可能なのですか?

さまざまな形式(つまり、.csvなど)でExcelスプレッドシートのエクスポートを自動化することを検討しています。

事前に回答ありがとうございます:)

4

4 に答える 4

9

最近(2013年3月)、独立した寄稿者がJNAに汎用COM自動化のサポートを追加しました。これは、JavaからのネイティブプラットフォームAPI統合に関して立っている最後の人物です。Jawin / JACOB / etcとは異なり、JNAは依然として非常に積極的に維持されています。

使用方法の例については、こちらをご覧ください。これまでのところ、Office APIへの事前に作成されたバインディングは非常に単純ですが、コードを見ると、COM Automation API(IDispatch、Variantなど)を使用して、ほとんどすべてのCOMインターフェイスへの遅延バインディングを実行するのは非常に簡単です。

ただし、Office COM APIは、世界で最も頻繁に使用されるCOM APIであるため、より完全にバインドされることを望んでいます。おそらく、さまざまなAPIバージョンをカバーするために、「MSExcel2007.java」、「MSExcel2010.java」なども存在する可能性があります。したがって、これは非常に進行中の作業ですが、JNAは現在JACOB / Jawinと同じくらい一般的にCOM自動化に役立ち、非常に積極的に維持されているというボーナスがあります(2013年4月現在)。

于 2013-04-22T20:15:47.483 に答える
4

JACOBを使用できます。ただし、十分に文書化されておらず、パフォーマンスが最高ではないため、多少の問題が発生します。また、対象とするWindowsのバージョンによっては、環境に合わせて正しく実行するのが難しい場合があります。スケーラブルなWebアプリケーションを構築している場合は、絶対に使用しません。もう1つのオプションはApachePOIです。これは、その初期のルーツから本当に長い道のりを歩んできており、JBossDroolsのような多くの本番用ツールで使用されています。JACOBを使用する場合は、次のSOスレッドを読むことをお勧めします。

(Javaからの)OLEオートメーションを使用するための良いリファレンスはありますか?

于 2011-07-13T13:46:58.820 に答える
1

あなたが探しているものを正確に可能にするJACOBと呼ばれるライブラリがあります。「JavaAPIから」とはどういう意味ですか?公式のJ2SEパッケージからですか?J2SEには、特に単一のオペレーティングシステムでのみ動作する、考えられるすべてのニーズに対応するライブラリが含まれているわけではないということ以外に、どのように答えればよいかわかりません。そのため、サードパーティのパッケージが存在します。

于 2011-07-13T13:40:10.883 に答える
1

商用ですが、無料のオープンソースおよびアカデミックライセンスを持っているようです...

JExcel

JExcel開発者向けドキュメント

私は所属していません。

于 2015-03-14T15:20:51.670 に答える