Gnumeric and OpenXML
I just noticed on FreshMeat that a new version of Gnumeric was posted today.
The FreshMeat post says:-
Gnumeric is capable of reading and writing MS Excel (XLS and Office Open XML), and reading Lotus, Applix, Quattro Pro, OpenCalc (ODF), XBase, DIF, SYLK, HTML, Psion, MPS, oleo, sc, misc. text formats, and its native XML. It can also generate Latex, HTML, and others.
I don't know whether the the omission of write for ODF is correct, but in any case note the read/write OpenXML. Gnumeric and its source code are licensed under the GNU General Public License.
It's hard to say it can't be done when someone's already done it isn't it, still I doubt it will stop some!
[Update: My doubts were well founded - Mark accuses me of being a propagandist and says that Gnumeric can't create OpenXML files ... so I downloaded it to test ... it can indeed. See pics below

The file above is created in the 1.7.10 Build 1 of Gnumeric. I saved the file as an XLSX (the OpenXML option is named MS Excel (tm) 12 - as Victor commented below)

and then opened in Excel 2007 (this used to be known as Excel 12) ...
]