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 についてだと,
がやはり日本語のリソースで詳しいです。