サンプルプログラム => OdsReader.lzh
javaでOpenOffice Calcのodsファイルを読むサンプルです。 OpenOffice Basicには馴染めないし、BeanShellの情報は少ないのでjavaでコーディングして読んでみました。 セルの値とセルのスタイル名くらいしか読めませんが、簡単なメモからhtmlを出力する程度なら出来そうです。
サンプルでは次の様なCalcドキュメントを読んで、
次の様なhtmlのテーブルを吐き出します。(CSSは別に書く)
| 表の読み込みテスト | ||||
|---|---|---|---|---|
| 複雑な | A | A | ||
| 1 | 表 | A | th | |
| 1 | でも、なんとか | |||
| 1 | 1 | 2 | 変換できます。 | |
| th | 3 | |||
| リンクのテスト ... 片鱗懐古のページへ移動 | ||||
確認した環境は以下の通りです。
| OS | WindowsXP home edition |
| jdk | version 1.6.0 |
| OpenOffice Calc | OpenOffice.org 2.4.1 |
| OpenOffice.org 3.0.0 ※ |
サンプルコードは仕様書を熟読して理解したうえで作ったものではありません。 テストも十分にしていない殴り書きのコードです。 それを踏まえて使ってください。
※ OpenOffice3.0になってOpenDocumentのバージョンが1.1から1.2に変更になりました。 このページに書いてあるOpenDocumentの仕様に関わる部分については影響が無さそうです。 ただし、スタイル名の記録箇所などに若干の違いがありました。 (OpenOffice2.4.1ではセルに記録されていたスタイル名が、OpenOffice3.0では列ヘッダのデフォルトスタイルに記録されていました。) サンプルプログラムに付属のodsファイルと同じものをOpenOffice3.0で作っても、細かいスタイル情報は再現できない可能性があります。
このネタについて正確な情報を知りたい場合、OASISのサイト(2008/10/02確認)にある仕様書を見てください。 「OASIS標準」→「OpenDocument」の項目がそれです。