Home > C# > 目的別資料 > Office文書の操作 > Libre Office > コードに追加する参照と名前空間

C#から、LibreOfficeを操作するために、コードに追加する参照と名前空間

新規作成日 2022-03-21
最終更新日

C#(CLI系の開発言語)で、LibreOfficeを操作するためには、LibreOfficeがインストールされたフォルダ内の、dllファイルを使用します。

※C#やVBなど.NET には、共通言語ランタイムと呼ばれるランタイム環境が用意されています。 LibreOffice(やOpenOffice)は、「Common Language Infrastructure (CLI) 」 という仕組みで、すべてのUNO型をCLI型にマッピングすることで、 LibreOfficeをC#などの.Net言語から操作できるようにしています。

参考

LibreOffice操作するために追加する参照と使用する名前空間を紹介します。

参考

LibreOffceを操作するためのdllは、LibreOffice SDKで提供されています。予め、インストールしておく必要があります。

LibreOfficeを操作するC#プロジェクトに参照として追加する必要があるdll

次の6つのファイルを参照に追加する必要があります。

具体的には、Visual Studioのプロジェクト内のソリューションエクスプローラーで、参照に追加しておく必要があります。

LibreOffice本体内のファイル

  • cli_uno.dll

C:\Program Files\LibreOffice\program (64bit版の場合の所在)

LibreOffice SDK内のファイル

  • cli_basetypes.dll
  • cli_cppuhelper.dll
  • cli_oootypes.dll
  • cli_ure.dll
  • cli_uretypes.dll

C:\Program Files\LibreOffice\sdk\cli (64bit版の場合の所在)

参照として追加する必要のあるDllの説明

OpenOfficeのドキュメントに、参照として追加する必要のあるdllの説明が記載されていたので、転記しておきます。

  • cli_basetypes.dll

    名前が示すように、それは、既に、cli_basetypes.dll内の作成されたUNO型のために必要な、いくつかの基底型を提供します。 それは、Any型が含まれるので、おそらく、すべてのプログラムは、このライブラリを必要とします。また、cli_uretypes.dllとcli_oootypes.dllは、それに依存しています。

  • cli_cppuhelper.dll

    ネイティブUNOを起動するために、ブートストラップ・コードを提供します。すなわち、別の言語で実装されるさまざまなUNOサービスを利用します。このアセンブリの型は、常にクライアント・プログラムで使われます。

  • cli_oootypes.dll

    (OOo 3.0以降)オフィス型を提供します。これらの型は、OOo 3.0以前では、cli_types.dllに含まれていました。

  • cli_ure.dll

    UNOインターフェイスを実装するために役に立つヘルパー・クラスが、含まれています。このアセンブリの型は、必ずしも使用されているわけではありません。

  • cli_uretypes.dll

    (OOo 3.0以降)URE型を提供します。これらの型は、OOo 3.0以前では、cli_types.dllに含まれていました。

引用

C#で使用する名前空間

C#のコード内で名前空間を使用することで、UNOオブジェクトの記述を短くすることができます。

C#
using uno.util;
using unoidl.com.sun.star.frame;
using unoidl.com.sun.star.lang;
using unoidl.com.sun.star.sheet;
using unoidl.com.sun.star.table;
using unoidl.com.sun.star.uno;
using unoidl.com.sun.star.beans;
using unoidl.com.sun.star.util; 
ちなみに

LibreOffice(x64)とLbreOffice SDKは、バージョン7.3.0,、7.3.1、7.5.2では、例外が発生して、動作しませんでした。7.5.2では、C#コードをx86でビルドしても例外が発生して動作しないことを確認しました。

私の認識している範囲では、バージョン 7.5.2まででは、C#で、LibreOfficeを操作するためには、LibreOffice(x86)つまり、LibreOfficeは、32bit版を使用する必要があるようです。

参考

このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」