オフィスソフトを操作するためのRTC群

オフィスソフトを操作するためのRTC群

投稿者: 
Miyamoto Nobuhiko
オフィスソフトを操作するためのRTC群

概要・特徴

OpenOffice、Microsoft Officeの表計算機能、文書作成機能等をRTミドルウェアを使ったシステムで利用するためのRTコンポーネント群です。
  • OpenOfficeの機能は5種類コンポーネント化
    • Calc(表計算)のRTC(OOoCalcRTC)
      • データポートからのセルの値の入出力
        • 入力されたデータの保存、グラフの表示
          • 様々なグラフが使用可能
        • 入力データを数式で計算後出力
          • シミュレーション、非リアルタイム制御のロボットに使用可能
        • データポートは動的に追加可能
          • BasicDataType.idl、ExtendedDataTypes.idlで定義されたデータ型に対応
    • Draw(図形描画)のRTC(OOoDrawRTC)
      • データポートから図形の位置、角度の入出力
        • ロボットの位置の表示等が可能
        • データポートは動的に追加可能
          • 14種類のデータ型に対応
    • Writer(文書作成)のRTC(OOoWriterRTC)
      • データポートから入力した文字の表示、フォントの変更
    • Base(データベース)のRTC(OOoBaseRTC)
      • 登録したデータベースからのデータ抽出、入力
        • サービスポートを利用することでデータ取得、データベースの更新、テーブルの追加等が可能
        • 付属のRTCを用いることで他のRTCからはサービスポートを使用せずにデータの抽出、入力が可能(詳細な抽出条件を設定したい場合などはサービスポートを利用)
    • Impress(プレゼンテーション)のRTC(OOoImpressRTC)
      • スライド番号の変更、設定したアニメーションの実行
      • 付属のRTCを用いることでスライドショーを別のPCで観ることが可能

  • Microsoft Officeの機能は4種類コンポーネント化
    • Excel(表計算)のRTC(ExcelRTC)
    • Word(文書作成)のRTC(WordRTC)
    • PowerPoint(プレゼンテーション)のRTC(PowerPointRTC)
      • OpenOffice Calc、Writer、Impressを操作するためのRTCとほぼ同機能
    • MODI(文字認識)のRTC(OCR_RTC)
      • データポートから入力した画像データから認識した文字列を出力

仕様

  • OpenOfficeを操作するためのRTC群
    • 言語:Python
    • OS:Windows Vista, Windows 8.1, Ubuntu 10.04LTS, Ubuntu 12.04LTS
    • RTミドルウェア:OpenRTM-aist-Python-1.1.0-RC1
    • OpenOffice:Apache OpenOffice 3.4.1, Apache OpenOffice 4.1.1, OpenOffice.org 3.2, LibreOffice 3.5
  • Microsoft Officeを操作するためのRTC群
    • 言語:C++/CLI
    • OS:Windows Vista, Windows 8.1
    • RTミドルウェア:OpenRTM-aist-1.1.0-Release
    • MS Office:Word 2007, Excel 2007, Word 2013, Excel 2013, PowerPoint 2013
  • Microsoft Officeを操作するためのRTC群(Python版)
    • 言語:Python
    • OS:Windows Vista, Windows 8.1
    • RTミドルウェア:OpenRTM-aist-Python-1.1.0-RC1
    • MS Office:Word 2007, Excel 2007, Word 2013, Excel 2013, PowerPoint 2013

ソースコードおよびマニュアル

  • OpenOfficeを操作するためのRTC群
    • GPLv3
  • Microsoft Officeを操作するためのRTC群
    • LGPLv3
  • Microsoft Officeを操作するためのRTC群(Python版)
    • LGPLv3
  • その他のRTC
    • LGPLv3

動画

問合先(メールアドレス): 
TyouKyozyakuTaisitu(at)yahoo.co.jp
Resources
Project Information
OS: 
Windows
Linux
言語: 
C++
Python
OpenRTM ver.: 
1.1
Average: 
5
Average: 5 (1 vote)
最終更新日時: 
月, 2016-11-07 18:20

コメント

投稿者: 

こんにちは。大変な力作ですね。ソースコードを眺めていて思ったのですが、独自のデータポートの定義を各ソースに書くより、まとめてライブラリ化した方がメンテナンスが楽だと思います。関数名のつけ方も独特ですが、ある程度コーディングルールを決めて実装することをお勧めします。MS OfficeもPythonのWin32comを使うと簡単にOfficeソフトやIEを使うことができますので、OOoのコードとマージできるといいですね。また、GPLのコードをコピーした部分があるようですが、分離(別ファイルに)した方が良いかもしれません。

投稿者: 

コメントありがとうございます。 関数名を適当に決めていたのは修正したいと思います。 実はPythonでExcelを操作できないだろうかと思って調べたらpython-excelライブラリというのがあったのですけど、なんだか使い方がよくわからなかったのと3つのパッケージをインストールしなければならないのが気に食わなかったので今の実装方法になりました。 とりあえずwin32comをインストールしてこのサイトのコードを参考にして動作確認してみました。簡単そうなのでMS OfficeのRTCもPythonで実装することも考えてみたいと思います。 GPLのコードの分離ですが、OpenOfficeのUNO関連の関数を使用したコードを別ファイルに分離してimportして使おうとすると何故かエラーが出るため仕方なく同じファイルに書いてあります。解決できれば分離したいと思います。

投稿者: 

素早い対応ありがとうございます。Excelの操作ですが、win32comで作成すると低レベルの関数を直接触ることになるので、実装されていると他の人にとっても非常に有用だと感じます。期待しています。

投稿者: 

Excel、Word、PowerPointを操作するRTCをPythonで実装しました。 マニュアルはここから読めます。

投稿者: 

ExcelRTCをRTCのログ取りなどに利用させていただいております. 現在,TimedVelocity2Dのポートと接続しようとした場合, ポートの生成に失敗しており困っております. 対応ポートのリストには上記のポートも含まれているので,利用できるかと思っていたのですが, 対応していないなどありますでしょうか? マニュアルを元にTimedLongや,TimedDoubleなどの基本的なポートでの動作は確認できている状況です. こちらについておわかりの方いらっしゃいましたら,お教えいただければ幸いです.

投稿者: 

Twitterで返信しておいたので伝わっているかと思いますが、一応こちらにも返信しておきます。 ExtendedDataTypes.idlのデータ型はOpenOffice CalcのRTC、ExcelRTCのPython版の対応のみで、C++版は対応しておりません。

Python版ですが、依存ソフトウェアのインストールが上手くいかなかった場合を考えてEXEに固めておいたので、動作できない場合はもう一度Python版のExcelRTCをダウンロードして解凍したフォルダのdistフォルダ内のexeファイルを実行すると動作できるかもしれません。

蛇足になるかもしれませんが、ExcelRTCは実装の都合上Excelとの間にプロセス間通信を挟むので動作が遅いです。速度が要求される場合はOpenOffice CalcのRTCを使う事をお勧めします。

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2195
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク