Calc(4)SDKのJavaの例を実行してみる

2017-10-08

旧ブログ

t f B! P L
使ってみないと何ができるのかわからないけど、何ができるかわからないと使ってみる気もしないものです。そこで動く例をやってみるのですが、Calcの機能は膨大にあるので、SDKの例でもいろいろなことをやっていて、何ができるのかが頭に入るまでなかなか大変そうです。

前の関連記事:Calc(3)セルへのPythonのシーケンス型アクセス法


SDKに含まれるCalcの例


SDKに含まれる例はすべてJavaのものです。

Spreadsheet Documents examples

これらはデベロッパーガイドについての例で、sdk/examples/DevelopersGuide/Spreadsheetにソースがあります。

GeneralTableSample.java

(2017.11.26追記。Pythonに訳したものです。
SpreadSheetExample/GeneralTableSample.py at 00250d2d8d4a94dc395dc5fc5ba5692dc0389d4f · p--q/SpreadSheetExample)


とりあえずセルにいくつか値を代入して、行や列の操作をして、グラフを描く簡単な例です。

SpreadsheetSample.java

(2017.11.26追記。これ以降はPythonに訳すのは断念しました。)

GeneralTableSample.javaよりも突っ込んでスプレッドシートの機能を使う例です。

SpreadsheetDocHelper.javaのSpreadsheetDocHelperクラスを継承していて、そのメソッドを利用しています。

SpreadsheetSample.javaでは次の11個のメソッドに分けて例を実行しています。

doCellSamples()

*** Samples for service sheet.SheetCell ***

Paragraph text: Text in first line.
Paragraph text: And a hyperlink
Address of this cell:  Column=1;  Row=2;  Sheet=0
セルに関する例。


Pythonのオートメーションで実行すると必ずこのように罫線がおかしくなってしまいました。

これを戻すにはOSを再起動しても直らず、Javaの例を実行する必要がありました。

Javaの例もオートメーションになっているせいなのか、何回か実行するとPythonのオートメーションと同じようになるときもありました。

doCellRangeSamples()

*** Samples for service sheet.SheetCellRange ***

Search text replaced 2 times.
The name of the wide column is B.
Address of this range:  Sheet=0
Start column=0;  Start row=9
End column  =2;  End row  =29
Average value of the data table A10:C30: 5.2
Array formula is: {=A10:C12}
Cells in A10:C30 containing text: Sheet1.A10:B30,Sheet1.C10
セルの範囲に関する例。

doCellRangesSamples()
*** Samples for cell range collections ***

Inserting A1:A1 without merge, resulting list: Sheet1.A1
Inserting A2:A3    with merge, resulting list: Sheet1.A1:A3
Inserting B1:B3 without merge, resulting list: Sheet1.A1:A3,Sheet1.B1:B3
All filled cells: A1 B3 
複数のセルの範囲を扱う例。

複数のセルの範囲の結合をしています。

シート上の表記は変化しないようです。

doCellCursorSamples()
*** Samples for cell cursor ***

Array formula in E21:G23 contains formula {=A10:C12}
The used area is: Sheet1.A1:K38
セルカーサーに関する例。

シート上の表記は変化しないようです。

doFormattingSamples()

セルとセルの範囲の書式設定に関する例。
でる。

Javaの例ではこれは例外がでます。

シート上の表記は変化しないようですが、それは例外がでているせいかもしれません。

doDocumentSamples()

*** Samples for spreadsheet document ***

Automatic column page breaks: 7 14 21 28 35 42 49 56 63 70 77 84 91 98 105 112 119 126 133 140 147 154 161 168 175 182 189 196 203 210 217 224 231 238 245 252 259 266 273 280 287 294 301 308 315 322 329 336 343 350 357 364 371 378 385 392 399 406 413 420 427 434 441 448 455 462 469 476 483 490 497 504 511 518 525 532 539 546 553 560 567 574 581 588 595 602 609 616 623 630 637 644 651 658 665 672 679 686 693 700 707 714 721 728 735 742 749 756 763 770 777 784 791 798 805 812 819 826 833 840 847 854 861 868 875 882 889 896 903 910 917 924 931 938 945 952 959 966 973 980 987 994 1001 1008 1015 1022
Value of property IsIterationEnabled: false
Value of property IterationCount: 100
Value of property NullDate: 1899-12-30
スプレッドシートドキュメント(つまりはCalcのドキュメント)に関する例。

A new sheetという新しいシートが挿入されて、そこに上図のものが表示されます。

doDatabaseSamples()


データベースに関する例。

A new sheetにリストボックスが出現します。

Javaの例ではデータベースに接続時に例外がでます。

doDataPilotSamples()


データパイロットに関する例。

LibreOffice3.4からはデータパイロットとは言わずにピボットテーブルというようです(LibreOffice 3.4 の変更点 - The Document Foundation Wiki)。

doNamedRangesSamples()


セル範囲の名前に関する例。

Sheet1の右下に上図の表が表示されます。

doFunctionAccessSamples()
*** Samples for function handling ***

ZTEST result for data {1,2,3} and value 2 is 0.5
Recently used functions: ARABIC ABS SUM AVERAGE MIN MAX IF 
Calcの関数に関する例。

シート上の表記は変化しないようです。
 
doApplicationSettingsSamples()
*** Samples for application settings ***

User defined sort lists:
日,月,火,水,木,金,土
日曜日,月曜日,火曜日,水曜日,木曜日,金曜日,土曜日
1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月
一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月

Calcの設定に関する例。

シート上の表記は変化しないようです。

ViewSample.java


シートのビューに関する例。

これは、表示→セルの固定→行と列の固定、をやっているようです。

ExampleAddin.java

これは拡張機能ExampleAddIn.oxtのソースになります。


~/libreofficex.x_sdk/LINUXexample.out/bin(x.xはLibreOfficeのバージョン)に出力されたExampleAddIn.oxtをインストールして、sdk/examples/DevelopersGuide/SpreadsheetにあるExampleAddIn.odsを開くと拡張機能の関数が実行されていることがわかります。

ExampleDataPilotSouce.java

makeするとこれをソースにExampleDataPilotSouce.oxtという拡張機能が作られるのですが、何をする拡張機能なのかよくわかりませんでした。

参考にしたサイト


LibreOffice 6.0 SDK - Developer's Guide Examples
このJavaの例Spreadsheet Documents examplesを実行してみました。

データパイロット - LibreOffice Help
データパイロットのヘルプ。

LibreOffice 3.4 の変更点 - The Document Foundation Wiki
データパイロットはピボットテーブルに変更になったそうです。

OOoBasic/Calc - ...?
CalcのBasicマクロの例がたくさんあります。

次の関連記事:Calc(5)Calcドキュメントのサービスとインターフェイス一覧

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ