ホーム - OpenOffice活用

C#.NETでOpenOfficeを使おう!

業務系アプリケーションには帳票の出力機能が必要になることが多々あります。そこで無料で利用できる「OpenOffece」を使って帳票出力ができれば何かと便利そうです。
というわけで、ここではC#.NETからOpenOffice Calcの利用方法について調べてみましょう。

OpenOffice.orgにはプログラムからオープンオフィスを呼び出すために「uno」という仕組みが用意されています。 「uno」はJavaから利用ことが多いようですが、ここではC#.NETで使いたいということでCLI用のuno(UNO/CLI)を使ってみることにしました。

まず最初の作業としてC#.NETのプロジェクトにUNO/CLI用のライブラリを参照設定します。バージョン3.0の場合は、「[OpenOfficeをインストールしたフォルダ]\program\assembly\」フォルダの下に

「cli_basetypes.dll」
「cli_cppuhelper.dll」
「cli_oootypes.dll」
「cli_ure.dll」
「cli_uretypes.dll」

という5つのファイルと、「[OpenOfficeをインストールしたフォルダ]\URE\bin\」フォルダの下に

「cli_uno.dll」

というファイルがありますので、これを適切なフォルダにコピーして参照設定に追加します。
(私はプロジェクト内に「Resources」というフォルダを作成してファイルをコピーして参照させました。)

それではこれから実際に「OpenOffice.org Calc」をC#.NETから使ってみましょう!!

1.プロセスの起動

OpenOffice.orgのアプリケーションを起動するための手順を記載しています。

2.画像シェイプの挿入

OpenOffice.orgで画像ファイルを挿入するための手順を記載しています。

3.ディスパッチの利用

OpenOffice.orgでディスパッチを用いてアプリケーションを操作する手順を記載しています。

4.クラスサンプル

OpenOffice.orgを業務系アプリケーションの帳票出力に使用するためのクラスサンプルです。


<おまけ:筆者より>
OpenOffice.orgをどうやって業務系アプリケーションに使うかというと、例えばCalcで印刷用に罫線等をレイアウトしているシート(「印刷用」というシート)と入力用に項目を縦に並べたシート(「入力用」というシート)の2枚を用意します。
「印刷用」のシートに「入力用」のシートの対象となるセルを参照設定や書式設定しておき、業務系アプリケーションからは「入力用」のシートにデータを出力するようプログラミングしておけば、かなり柔軟性の高い単票を作れます。
私自身が作ったシステムでMS-Excelで店頭チラシを作成する機能などをいくつか作っていますが、ユーザーサイドでの柔軟性が高く重宝しています。
同じようなことがOpenOffice.org Calcでできないかなぁと思って調べてみました。