MS Office のファイルフォーマット(OLE2)

Microsoft Excel のファイルフォーマットについてあれこれ調べてました。昔の MSDN に書いてあった気がするんですが,見つかりませんでした。

そのかわり,といってはなんですが,OpenOffice.org Calc のデベロッパーサイト http://sc.openoffice.org/ の中に結構詳しい解説書がありました。ポインタとして示すのが難しいんで,直リンクしときます。

今時は XML で吐いたりできるみたいなんですが,昔の OLE2 ドキュメントというのが,FAT のようなファイルシステムを内包していて正直うざいです。

この OLE2 ドキュメントのヘッダは,

D0 CF 11 E0 A1 B1 1A E1

という8バイトで始まるんですが,どういう意味があるんだろうと x86 で逆アセしたりしたりしたんですがよくわからず…と,ぼーっとみてたら,

DO CF Il E...

になってて,なるほど!と思いました*1。後半4バイトについてはわかりませんでしたが。

DOCFILE に内包された Excel ワークブックファイルのフォーマットは,

が日本語で書いてあってわかりやすいです。

Word についてだと,

がやはり日本語のリソースで詳しいです。

*1:ググってみたらこちらのサイトにも書いてありました