5

相互運用ライブラリは低速で、MS Office をインストールする必要があります。多くの場合、MS Office をサーバーにインストールしたくありません。

Apache POIを使用したいのですが、.NET を使用しています。

ファイルのテキスト部分を抽出するだけでよく、Office ファイルに情報を作成したり「保存したりする」必要はありません。

非常に大きなドキュメント ライブラリがあり、それを新しい XML ファイルに変換できません。

バイナリ ファイルのパーサーを書きたくありません。Apache POI のようなライブラリがこれを行います。残念ながら、これは Java プラットフォーム専用です。このアプリケーションを Java で作成することを検討する必要があるかもしれません。

.NET で POI に代わるオープン ソースをまだ見つけられていません。Java で独自のアプリケーションを作成すると思います。

4

9 に答える 9

3

すべての MS Office バージョン:

新しい Office (2007) の場合:

古い Office (2007 年より前) の場合:

于 2008-09-30T14:13:44.963 に答える
2

Aspose コンポーネントを確認してください。これらは、サーバーに Office を完全にインストールする必要なく、相互運用機能を模倣するように設計されています。

于 2008-09-30T15:14:34.663 に答える
2

新しい docx 形式は本質的に XML ベースのファイルであるため、構造がわかれば、標準の XML DOM 手法を使用してプログラムで作成および操作できます。

ファイルは基本的に、別のファイル拡張子を持つ zip アーカイブです。名前空間を使用しSystem.IO.Packagingてファイルの内部要素にアクセスし、それらを開いてXmlDocument操作を実行します。

これを行うための例があり、SourceForge の Office Open XML プロジェクトは、インスピレーションを得るために見る価値があるかもしれません。

古いバイナリ形式に関しては、これらは MS 独自のものであり、内部からコンテンツを取得する可能性が高い唯一の方法は、Office オブジェクト モデル (Office のインストールが必要)、またはサード パーティのファイル コンバーター/パーサーを使用することです。

残念ながら、これらのファイルを操作する .NET プラットフォームのファースト パーティおよびネイティブなものはありません。

于 2008-09-30T14:10:51.477 に答える
1

それらのファイルをどうする必要がありますか? それらをユーザーにストリーミングするだけの場合は、基本的なファイル ストリームで問題ありません。ユーザーが Office で開くことができる新しいファイル (おそらくテンプレートに基づく) を作成してユーザーに送信する場合は、さまざまな回避策があります。

実際に、Web サイトで使用するために Office ドキュメントにデータを保持している場合、それは間違っています。Office ドキュメントは、たとえ Excel スプレッドシートやアクセス データベースであっても、インタラクティブな Web サイトで使用するのに適切な選択肢ではありません。

于 2008-09-30T13:49:10.563 に答える
1

Javaの世界にはJExcelApiもあります。私が見ることができたものから、それは非常に明確に書かれており、POIよりもはるかにきれいです。したがって、そのコードを .NET に移植することさえ問題外ではないかもしれません。もちろん、十分な時間がある場合に限ります。

于 2009-04-02T15:45:11.327 に答える
1

ドキュメントが Word 2007 形式の場合、system.io.packaging ライブラリを使用してプログラムで操作できます。

Rウェンディ

于 2008-09-30T14:03:12.900 に答える
0

Microsoft Excel ワークブックは、ワークブックをデータベース テーブルのように見せる ODBC ドライバー (または OLE DB ドライバーですか? 覚えていません) を使用して読み取ることができます。しかし、そのドライバーが Office スイート自体なしで利用できるかどうかはわかりません。

于 2008-09-30T14:22:40.357 に答える
0

OpenOffice を使用できます。コマンドライン変換ツールがあります。

変換方法

つまり、OpenOffice でマクロを定義し、そのマクロをコマンドライン引数で OpenOffice に呼び出します。その引数では、ローカル ファイル (Office ファイル) の名前がエンコードされます。

これは優れたソリューションではありませんが、実行可能である必要があります。

于 2008-10-03T11:32:16.303 に答える
0

オープンオフィス。

サーバーのライセンスにお金をかけたり、サーバーに脆弱性を関連付けたりすることなく、それに対してプログラムして多くのことを実行させることができます.

于 2008-09-30T14:03:39.763 に答える