As you are likely aware, Excel 2007 includes a new file format for storing data, well actually it has a few new file formats apparently. And, none of them are OpenDocument, in case you were wondering.
Rob Weir takes Office 2007 for a spin, and has some interesting things to report regarding the file formats being used by Excel 2007.
In addition to the default Open XML file format (.xlsx) that has been added to Office 2007, there is also an additional format called the Excel Macro-Enabled Workbook (.xlsxm) which contains binary-only data not specified in the ECMA standard. There is also an all-new binary-only format (.xlsb), which Microsoft says provides "optimal performance and backward compatibility" (wasn’t that the point of Open XML?).
The “Excel Macro-Enabled Workbook” option saves as an “xlsxm” extension. It is OOXML plus proprietary Microsoft extensions. These extensions, in the form of binary blob called vbaProject.bin, represent the source code of the macros. This part of the format is not described in the OOXML specification. It does not appear to be a compiled version of the macro. I could reload the document in Excel and restore the original text of my macro, including whitespace and comments. So source code appears to be stored, but in an opaque format that defied my attempts at deciphering it.
(What’s so hard about storing a macro, guys? It’s frickin’ text. How could you you[sic] screw it up? )
This has some interesting consequences. It is effectively a container for source code that not only requires Office to run it, but requires Office to even read it. So you could have your intellectual property in the form of extensive macros that you have written, and if Microsoft one day decides that your copy of Office is not “genuine” you could effectively be locked out of your own source code.
There is also a method to add in additional file formats for saving to, including PDF and Microsoft’s XPS, but there is no native ODF support yet.
Overall, Rob’s experience was a bit buggy, and there was an incident where trying to save to Open XML prompted a message about incompatible features (so much for backward compatibility, hey try the new binary-only format…).
I wonder how Novell OpenOffice.org’s VBA support is going to handle the new binary information in the macro-enabled workbook? Still better than the next MS Office for Mac, I suppose.