ドキュメント交換のために、OpenOffice.org のテキストとスプレッドシート ドキュメントを生成したいと考えています。これまでのところ、OLE を使用して OpenOffice をインストールする必要があるエクスポート コンポーネントを見つけました。
OpenOffice.org Writer または OpenOffice.org Calc のネイティブ ファイルを書き込める Delphi コンポーネントはすでに利用可能ですか?
ドキュメント交換のために、OpenOffice.org のテキストとスプレッドシート ドキュメントを生成したいと考えています。これまでのところ、OLE を使用して OpenOffice をインストールする必要があるエクスポート コンポーネントを見つけました。
OpenOffice.org Writer または OpenOffice.org Calc のネイティブ ファイルを書き込める Delphi コンポーネントはすでに利用可能ですか?
それは、ドキュメントがどれほど複雑であるか、およびどれだけの労力を投資したいかによって異なります。
OpenOffice.org ドキュメント (OO.org のバージョン 2 以降) はOpenDocument Formatのファイルであり、基本的にはさまざまな XML およびサポート ファイルを含む、文書化された構造を持つ zip 形式のディレクトリです。たとえば、7-Zipの「Open Inside」コマンドを使用して、ディレクトリのようにファイルをナビゲートできます。
これにより、少なくとも次のオプションが提供されます。
ドキュメントを出力するコードを自分で作成します。Delphi ストリーム クラスと圧縮サポートで十分です。これは明らかに最も難しい方法ですが、すべてを制御できます。
最小限のドキュメントをテンプレート ファイルとして保存し、それらを外部サポート ファイルまたは埋め込みリソースとしてアプリケーションに追加します。ファイルを作成する必要がある場合は、テンプレートをコピーして、ルート ディレクトリにあるcontent.xmlファイルを編集します。これははるかに簡単なはずです。たとえば、いくつかのシートと列のデータを含む単純なスプレッドシート ファイルを作成する方法です。
既にライセンスをお持ちの場合、またはライセンスの支払いを気にしない場合、FastReport VCLは「Office アプリケーション (OASIS) エクスポート、スプレッドシート (ods) およびテキスト (odt) のオープン ドキュメント フォーマット」をサポートします。他のレポート ソリューションもあるかもしれませんが、私が確信しているのは FastReport です。
Lazarus では、ODS へのエクスポートにzexmlssコンポーネントを使用しています。このコンポーネントは、lazarus、delphi、およびビルダー用です。スプレッドシートのみ。数式は正常に機能します。
FPC/Lazarus の fpspreadsheet コンポーネントは、古い Excel 形式を直接書き込むことができ、OOO はそれらを開くことができます。テキストドキュメントではなくスプレッドシートが必要な場合は、Delphi に移植できるかどうかを確認するオプションになる可能性があります。