【Calc】 OpenOffile.org Calc のファイル形式 *.ods を覗いてみた。

OpenOffile.org の表計算ツール Calc が作る表ファイル *.ods が、実はZIP圧縮されたXMLファイルの集合だということを知り、ちょっぴり中身を覗いてみた。

*.ods の拡張子を *.zip に変更して、普通の圧縮解凍ツールに通すと、XMLの集合が復元される。

まずは、改行とかインデントとかないXMLなので読みにくかったのを、ちょっと見やすく整形してみた。これらのXMLと、Calcで開いたものとを見比べると、だいたいの構造は見えてくる。下記に置く。

  • ※拡張子は *.zip にしてあるので、*.ods に変更すると、Calc で開けるようになる。

解凍すると、生成されるファイルは下記の通り。

Configurations2 (directory)
????
META-INF (directory)
????
Thumbnails (directory)
サムネイル画像が格納されるディレクトリ。
content.xml
表構造の実体を表現するXML。シート別に括られていて、その中にテーブルが書かれているようだ。
meta.xml
メタ情報が書かれたXML。
mimetype
MIME Type を定義している?
settings.xml
各種設定を格納しているらしいXML。プリンターの設定情報なども含まれている。
styles.xml
スタイルシートの役割らしいXML。印刷スタイルっぽい記述も見られる。

それぞれ具体的な仕様はよくわかんないけど、いろいろいじって遊んでみると面白そうかも。

データの構造をちゃんと把握できれば、ZIPを扱える環境ならPHPとかでも手軽に編集できそうだ。もちろん、印刷に関する情報も *.ods の中に持っているので、印刷時の体裁も細かくコントロールできそうだ。そして、OpenOffice.org にはPDFに変換する機能が内蔵されている。

上手いこと利用したら、PHPなどからキレイな印刷データを自動的に生成したりとか、そういう使い方ができたりしたりして。


プロフィール

コヤナギ トモヤ

ウェブ系エンジニアしてます。ウェブデザイナー、ウェブディレクターとしてウェブ制作の仕事に携わり、今はエンジニア職に流れ着きました。誰かのお仕事をちょっとだけ効率化するような支援ツールの開発が好き。オープンソースとMITライセンス大好き。人生後半は自由と民主主義のコントリビューターとして過ごす予定。

ウェブ制作支援ツール Pickles 2 をオープンソースで開発しています。

PHP/JavaScript/NodeJS/nwjs/Laravel/Pickles2/オープンソース/心理学/倫理/自由と民主主義

RSSフィード

ページの先頭へ戻る