Excel(MS365): ワークブックは小さなファイルシステム

 Excel2003までは、ワークブックはBIFF8ってフォーマットで構成されていて、中身はインデックスセクタやディレクトリ、内容ごとに分かれたファイルといったいわゆる一種のファイルシステムでした。

バイト単位で読み込んで展開するプログラムを組んだりして解析してみたものです。

97~2003のファイルフォーマットの資料は、例えばこんな感じ。

[MS-XLS]: Excel Binary File Format (.xls) Structure | Microsoft Docs

---

さて、2007、つまり.xlsxにフォーマットが変更されたとき、従来のBIFF8からzipにファイルシステムが変更されました。

もう独自に解析しなくても、アーカイバにかければ構成内容がわかるようになったわけです。これはありがたい。
フォーマットとしては Office Open XML (ISO/IEC 29500) という規格でして、フォルダ構造と各フォルダに格納されるファイルの内容なんかが定義されているわけです。

こちらの資料は、例えばこことか。

[MS-XLSX]: Excel (.xlsx) Extensions to the Office Open XML SpreadsheetML File Format | Microsoft Docs

中のファイルはxmlで書かれてまして。
設定や入力データなんかがタグに囲まれて格納されているので、なんとなくなんのデータなのかが推測しやすい。また、タグ名を手がかりにネット検索で情報を探すこともできなくはないんですね。こんなニッチなとこに言及しているサイトはあまりないので、そこまでほいほいと調べられるわけではありませんが。

LibreOffice(こっちは OpenDocument file format(ODF) って規格ですが)などの同ジャンルアプリとの相互読み込み/書き出しなんかがかなり楽になったというメリットもあります。
なんなら自作アプリでも読み書きできますよ。読み込んだデータをどう扱うかは別の話としてですが。

---

とりあえず、本記事ではここまで。

今後Excelのディープな話をするときは、ワークブックの中に潜ってxmlの記述を直に読み解いたりもするつもりですので、前提知識としてこれらは把握しておいて欲しかったんです。

0 件のコメント :

コメントを投稿