01.11.07

Proprietary Open XML Extensions (Already!)

Posted in Apple, Deception, ECMA, Formats, Interoperability, Microsoft, Novell, Office Suites, Open XML, OpenDocument, Standard, VBA at 12:03 am by Shane Coyle

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.

Share in other sites/networks: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Reddit
  • email

If you liked this post, consider subscribing to the RSS feed or join us now at the IRC channels.

Pages that cross-reference this one

5 Comments

  1. Stephane Rodriguez said,

    January 23, 2007 at 12:27 pm

    Gravatar

    I am a new visitor. While I find your blog instructive (subscribed), I’d like to shed some light on a confusion here.

    VBA projects are encoded in bin parts in the new Office 2007 file formats, whether it’s Word, Excel or Powerpoint. Those parts are the actual VBA streams that we find in older versions of the corresponding applications. That’s a direct extraction.

    There are other binary parts, such as printer settings parts and OLE objects parts.

    The new XLSB file format pushes XLSM even further by making the important XML parts encoded in much the same way than BIFF used to do with older versions. Actually, those bin parts are christened as BIFF12. BIFF12 is undocumented right now.

    I have written an article on the subject here :
    http://www.codeproject.com/useritems/office2007bin.asp

  2. Roy Schestowitz said,

    January 23, 2007 at 12:47 pm

    Gravatar

    Thank you for the information, Stephane. For the record, I notice that you are among the Open XML team members:

    http://openxmldeveloper.org/members/Stephane+Rodriguez.aspx

    Also, yesterday’s news indicate that Microsoft pays people to “bring balance” to content which speaks about Open XML. I just hope you are not being paid to post here.

    In any event, your comment does not invalidate the fact that Open XML has undocumented, binary parts.

  3. Stephane Rodriguez said,

    January 23, 2007 at 1:41 pm

    Gravatar

    If you think I may be a paid shill, take a look at this : http://xlsgen.arstdesign.com/special/OOXML_objections.pdf

    (this is on my website)

    The OOXML specs are so bad I had to develop my own tool, called “diffopc”, to make any progress in my product (an Excel file format component which recently added partial support for Excel 2007).

  4. shane said,

    January 23, 2007 at 1:52 pm

    Gravatar

    Thank you, Stephane. We’ve had a huge influx of trolling as of the last few days, and perhaps are a bit on edge. There is no doubt from your first linked article (I didn’t read the pdf yet) that you are well versed in the OOXML spec.

    I love the fact that we do have discussions on the site, and want to encourage further discussion and corrections. I want our arguments to withstand scrutiny, and encourage any readers to question or comment on our premises.

    Let’s all just keep it mature, and there is no reason to post using pseudonyms folks, just type in "anonymous" or "i disagree". I still do not intend to censor any non-spam comments, nor shut down commenting after x number of days on an article, since many are still actively being viewed and linked to.

  5. Michael said,

    September 12, 2007 at 9:10 am

    Gravatar

    Thanks for the nice post!

What Else is New


  1. Links 27/11/2020: Jolla is 7, Diffoscope 162, MNT Reform Production

    Links for the day



  2. The Time Coronavirus Helped EPO Management Prevent Staff From Protesting and Going on Strike (March 26th)

    "In view of the spreading of the New Corona Virus, the planned General Assemblies have to be cancelled," the Staff Union of the European Patent Office (SUEPO) wrote in the wake of the crisis across Europe back in March (weeks ahead of a planned strike)



  3. Guarding Your Privacy With E2EE: Primer

    "As with all security, there is assumed risk no matter how careful you are. There are no security guarantees but that doesn't mean you shouldn't try."



  4. Links 27/11/2020: Systemd 247 and Cockpit 233

    Links for the day



  5. A Free Speech Deficit Harms Software Freedom

    Free software and Software Freedom cannot possibly succeed if we keep accepting or even just tolerating systematic censorship of opinionated people in our community; failing to speak out on this matter (for fear of supposedly offending someone, risking expulsion) is part of the problem — complicity by passivity



  6. Perception of Difficulty

    New poem by figosdev



  7. IRC Proceedings: Thursday, November 26, 2020

    IRC logs for Thursday, November 26, 2020



  8. Cartoon: After Gambling With Workers' Savings the EPO Can Do Real Estate

    New EPO cartoon from EPO insiders (the one on the right certainly looks a lot like António Campinos and the one on the left can be his EUIPO ‘import’ or Benoît Battistelli‘s INPI ‘import’)



  9. Free as in Freedom Should Not be Associated With Cost

    It's important to remind people that so-called 'free' services (Clown Computing, centralised spaces that 'farm' their so-called 'users') aren't really free; we need to advocate freedom or free-as-in-freedom alternatives



  10. [Meme] UPC's Pyrrhic Victory

    Contrary to what Team UPC says, what happened earlier today is hardly a breakthrough



  11. Many Thanks to Free Software, the Demise of Software Patents (in Europe and the US), and So Much More

    On a positive note we're heading into the end of November, one month before Boxing Day; we take stock of patent affairs that impact software developers



  12. Links 26/11/2020: PHP 8.0, Proxmox VE 6.3, UNIGINE 2.13

    Links for the day



  13. 29,000 Blog Posts and Recent Site Improvements

    Over 29,000 blog posts have been posted here, but more importantly we've made the site a lot more robust and resilient, accessible in more formats and protocols (while improving transparency, too)



  14. [Meme] Trump is Out. Now It's Time to Pressure the Biden Administration/Transition Team on Software Freedom Issues.

    The Biden transition is in motion and tentative appointments are underway, based on news reports (see our Daily Links); now is the time to put pressure, e.g. in the form of public backlash, to ensure it's not just another corporate presidency



  15. Boycott ZDNet Unless You Fancy Being Lied to

    ZDNet's Catalin Cimpanu continues to lead the way with misinformation and lies, basically doing whatever he was doing to land that job at ZDNet (after he had done the same elsewhere)



  16. The UPC and Unitary Patent Song

    On goes the UPC symphony, as the Unified Patent Court (UPC) is almost here, always coming "real soon!"



  17. Open Letter to the German Greens on UPC and Software Patents: Don’t Betray Your Voters and Your Promises, or You Will Regret it

    Dear Members of the German Greens in the Bundestag. By Benjamin HENRION.



  18. [Meme] One Step Away From Replacing Patent Examiners With 'Hey Hi' (AI)

    If it's not legal for 'Hey Hi' (AI) to get a patent, why should it be legal for patents to be granted by those who are invisible (and sometimes in de facto house arrest)?



  19. European Patent Office (EPO) Reduced to 'Justice Over the Telephone' and Decree by E-mail

    The EPO is trashing the EPC and everything that the Office was supposed to stand for, as it wrongly assumes demand for monopolies (typically from foreign corporations) comes before the rule of law and Europe's public interest



  20. Making Free Software Work for Users

    The latest reply to a non-developer concerned about software freedom; guest post by figosdev



  21. IRC Proceedings: Wednesday, November 25, 2020

    IRC logs for Wednesday, November 25, 2020



  22. Links 26/11/2020: AV Linux 2020.11.23 and Blender 2.91 Release

    Links for the day



  23. Links 25/11/2020: GamerOS and Biden Transition in Motion

    Links for the day



  24. An Orwellian December

    With December around the corner and states tightening the screws on the population (or employers on employees) at least we can look forward to spring



  25. The Non-Technical (or Lesser Technical) Software User That Wants Software Freedom

    Assuming that Free software should care about what users — not only developers — really want (and need) it’s important to understand how they view the current situation (with growing waves of corporate takeover and compromises, even expulsions)



  26. The European Patent Office Should be Run by Patent Examiners (Scientists), Not Politicians

    Europe would be better off (and patent quality much improved) had people with an actual grasp of science and reality were in charge of the EPO, not a money-chasing kakistocracy (which is what we have now)



  27. Member of the EPO's Boards of Appeal Explains Why VICOs (or ViCo/Video Conferences/Virtual 'Hearings') Are Not Suitable for Justice

    It's interesting to hear (or see/read) what people inside the EPO have to say about the "new normal" when they enjoy a certain level of anonymity (to avert retribution)



  28. Open Source Initiative (OSI) Co-founder Bruce Perens: Open Invention Network (OIN) is Protecting the Software Patent System From Reform and OSI Approves Faux 'Open' Licences (Openwashing)

    Richard Stallman was right about the OSI and the fake 'movement' that claims to have 'coined' the term "Open Source" (it wasn't a new term at all; it had been used in another context and the Free software community spoke of things like "Open Hardware" years earlier)



  29. IRC Proceedings: Tuesday, November 24, 2020

    IRC logs for Tuesday, November 24, 2020



  30. Making JavaScript Suck Less

    "Other than that, the first rule of JavaScript is: Do not use JavaScript. But this article is for people who break the first rule."


RSS 64x64RSS Feed: subscribe to the RSS feed for regular updates

Home iconSite Wiki: You can improve this site by helping the extension of the site's content

Home iconSite Home: Background about the site and some key features in the front page

Chat iconIRC Channel: Come and chat with us in real time

Recent Posts