ECMA-376 implementation notes are out

Edit on GitHub

Document Interop Initiative Last month, Microsoft released the implementation notes for their ODF implementation in Office 2007. These implementation notes are actually the documentation on how Office 2007 treats ODF documents in various cases. Today, Microsoft released the ECMA-376 implementation notes, or in short: they've now documented how Office 2007 handles OpenXML documents. The implementation notes site can be found on

I am really enthousiast about this one, as it actually documents how Excel will handle files created by PHPExcel. While developing this library, there were certain moments where we really had to dig into what Excel was doing, because something did not work as expected. Now, we will be able to simply check the implementation notes for stuff like this, a huge time saver!

You may wonder, what kind of things are mentioned in these implementation notes. I'll give you some examples on SpreadsheetML, as that is the OpenXML format PHPExcel focuses on. Other blog posts by Doug Mahugh and Stephen Peront offer additional insights.


Maybe we should add a limit to this in PHPExcel...


This means I can now add a new feature to PHPExcel, which of course, will be Excel 2007-only, that automatically picks the correct page scale.


This one may actually explain why we are having some issues with PHPExcel, Excel 2007 and negative dates...

Conclusion: I like this stuff! No more searching for why things happen: it's really listed in documentation! Thank you Microsoft for not wasting my valuable evening hours trying to figure things like these out.

kick it on

This is an imported post. It was imported from my old blog using an automated tool and may contain formatting errors and/or broken images.

Leave a Comment


One response

  1. Avatar for Mark Baker
    Mark Baker February 6th, 2009

    Extremely useful, I've downloaded the full set including xls and xlsx... the information on Chart substreams and pivot tables looks particularly useful.
    But it's a lot of wading through external to figure things out.... and there's still gaps. I'm trying to identify exactly how external functions are referenced.