libreoffice api について
TRANSCRIPT
![Page 1: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/1.jpg)
1
LibreOffice API について
2016/01/09LibreOffice mini Conference 2016 Osaka/JapanSansan株式会社 辰濱健一
![Page 2: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/2.jpg)
2
Agenda
自己紹介LibreOffice API についてサンプルを実行するサンプルを読み解くAPI を使いやすくするライブラリ
![Page 3: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/3.jpg)
3
自己紹介
![Page 4: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/4.jpg)
4
自己紹介
辰濱健一 https://www.facebook.com/kenichi.tatsuhama
徳島県生まれ、奈良県育ち就職以来、3社連続徳島勤務現在は、 Sansan株式会社 Sansan神山ラボ勤務サテライトオフィスでのリモートワークです趣味は、音楽・旅行徳島県内の温泉のイベントで、エレクトーンソロでの出演依頼神山町内のイベントで、管楽器のアンサンブルで出演昨年は八丈島、石垣島、北海道に行った徳島でモバイルアプリの勉強会を主催している
![Page 5: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/5.jpg)
5
業務経歴
1社目@徳島Java, VC++ にて PC のクライアントアプリケーション開発
パフォーマンス改善や UI 自動テスト導入も実施2社目@徳島
iOS, Android, Windows8 のスマホ・タブレット向けアプリ開発3社目@徳島
Android アプリ開発、 iOS コードレビュースマホアプリの自動テスト導入リモートワーク
![Page 6: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/6.jpg)
6
Sansan神山ラボ&リモートワーク
![Page 7: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/7.jpg)
7
LibreOffice API について
![Page 8: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/8.jpg)
8
LibreOffice API とは?
ざっくり言うと、プログラムから LibreOffice を操作する手段API … Applicatioin Programming Interface
マウス操作などは GUI( Graphical User Interface)http://api.libreoffice.org/ に情報やサンプルがある
色んなプログラミング言語から扱うことが可能
![Page 9: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/9.jpg)
9
マクロとの違い
プログラムの場所が違うマクロは、 LibreOffice の文書内のプログラムからLibreOffice APIは、 LibreOffice 外のプログラムから
![Page 10: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/10.jpg)
10
サンプルを動かす
![Page 11: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/11.jpg)
11
API を利用するための準備(Windows& Eclipse, Java)
Windows & Eclipse から Java で API を呼び出す準備LibreOffice をインストールLibreOffice SDK をインストールEclipse をインストール
…コマンドラインでもできますが、統合開発環境でやりたい派なのでEclipse にプロジェクトを作って、サンプルコードを取り込む
![Page 12: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/12.jpg)
12
LibreOffice のインストール
公式サイトからダウンロードして、インストーラでインストールhttps://ja.libreoffice.org/download/libreoffice-fresh/
![Page 13: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/13.jpg)
13
LibreOffice SDK のインストール
メインインストーラの下の方にあるhttps://ja.libreoffice.org/download/libreoffice-fresh/
![Page 15: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/15.jpg)
15
Eclipse にサンプルを取り込む
任意の場所に workspace を作成File > New > Java Project
Project Name …は適当にエクスプローラで、 ${LibreOffice}/sdk/examples/java/Spreadsheetを開き、ファイルを全て選択して、 Eclipse プロジェクトの src フォルダ
へ D&D する
![Page 16: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/16.jpg)
16
Eclipse にサンプルを取り込む
ダイアログが出たら、 Copy files を選択
![Page 17: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/17.jpg)
17
Eclipse にサンプルを取り込む
エラーが出てるはず
![Page 18: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/18.jpg)
18
Eclipse にサンプルを取り込む
プロジェクトを右クリックして、 Properties を開くJava Build Path を開き、 Libraries タブの Add External JARs… をクリック
![Page 19: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/19.jpg)
19
Eclipse にサンプルを取り込む
${LibreOffice}/classes 以下の *.jar ファイルを全て選択上記フォルダ内に、https://forum.openoffice.org/en/forum/viewtopic.php?t=2520からダウンロードした、 bootstrapconnector.jar も入れて、パスにも含めてください
![Page 20: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/20.jpg)
20
Eclipse にサンプルを取り込む
SCalc.java を右クリックRun As > Java Applicationエラーが出るはず
※CalcAddins.java …のエラーの消し方がまだわかっていない
![Page 21: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/21.jpg)
21
エラーの対処
BootstrapSocketConnector を使った方法に書き換える( SCalc.java)
import 文の追加
xContext の取得方法を変更
![Page 22: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/22.jpg)
22
実行結果
Calc が起動して、値が入り、スタイル設定して、グラフができた
![Page 23: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/23.jpg)
23
サンプルを読み解く( SCalc.java)
![Page 24: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/24.jpg)
24
ざっと読んでみる
起動
![Page 25: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/25.jpg)
25
Calc を開く
![Page 26: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/26.jpg)
26
スタイル定義”My Style”は背景色 6710932 、文字色 16777215
![Page 27: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/27.jpg)
27
シートのセルに値を入れる
![Page 28: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/28.jpg)
28
スタイル設定
![Page 29: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/29.jpg)
29
グラフ挿入A1:N4 がデータ範囲、グラフ挿入位置を Rectangle で指定
![Page 30: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/30.jpg)
30
グラフ設定の変更3D グラフにして、タイトル設定
![Page 31: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/31.jpg)
31
実行結果
![Page 32: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/32.jpg)
32
モデル
シートのセルに値を入れる
Doc
Sheets
Sheet[0] Sheet[N]・・・
モデルとコードの対応がイメージできますか??
![Page 33: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/33.jpg)
33
API Reference
import 文を見ると、 API Reference で探しやすいhttp://api.libreoffice.org/docs/idl/ref/annotated.html
![Page 34: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/34.jpg)
34
XSpreadsheets
http://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1sheet_1_1XSpreadsheets.htmlシートの追加や削除・コピーの機能があることがわかる
![Page 35: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/35.jpg)
35
サンプルを読んだ感想
コードが長い難しそうQueryInterface しないといけないのが直感的じゃないstatic おじさん
![Page 36: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/36.jpg)
36
簡単に使えるライブラリを作りました
…まだ作りかけある程度まとまったら、 Github で公開する予定
![Page 37: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/37.jpg)
37
Before
Doc から 0 番目の Sheet …をとるだけなのに
Doc
Sheets
Sheet[0] Sheet[N]・・・
![Page 38: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/38.jpg)
38
After
これだけ
Doc
Sheets
Sheet[0] Sheet[N]・・・
XXSpreadsheet xSheet = myDoc.getSheet(0);
※XSpreadsheet をラップした XXSpreadsheet 型になっている
![Page 39: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/39.jpg)
39
Before
スタイル定義”My Style”は背景色 6710932 、文字色 16777215
![Page 40: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/40.jpg)
40
After
スタイル定義”My Style”は背景色 6710932 、文字色 16777215
※XPropertySet をラップした XXCellPropertySet 型になっている※ プロパティの getter / setter を提供
![Page 41: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/41.jpg)
41
Before
グラフ挿入と変更
![Page 42: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/42.jpg)
42
After
グラフ挿入と変更
![Page 43: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/43.jpg)
43
ライブラリを使った簡単なサンプル
新規作成だけじゃなく、既存ファイルを開くことも可能範囲指定 (A2:C2 など )で値設定可能
実行結果
![Page 44: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/44.jpg)
44
LibreOffice API を使ったシステム連携
帳票出力(領収書など)Web などから、データを受け付ける
帳票テンプレートを Calc で読み込んで、データ入力PDF 保存メールで送信顧客リストから一斉メール送信
Calc の顧客リストを開くメールアドレス列に書かれているメールアドレスを収集メール送信
このように、 LibreOffice API を使うことによって、 システムの一部に LibreOffice を取り入れることができます。
ここの処理がLibreOffice
![Page 45: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/45.jpg)
45
まとめ
![Page 46: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/46.jpg)
46
まとめ
LibreOffice API を使うと、外部プログラムから LibreOffice を利用することができるJava, Python, C++ などのプログラミング言語から扱うことができるサンプルを見る限り、ラッパーライブラリを使わないと難易度は高い
LibreOffice API を通して、システムの一部に LibreOffice を取り入れることができる
![Page 47: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/47.jpg)
47
All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy.
ご清聴ありがとうございました
![Page 48: LibreOffice API について](https://reader034.vdocuments.pub/reader034/viewer/2022050613/587672931a28abd0018b664b/html5/thumbnails/48.jpg)
48
質疑応答