You probably have a problem where xslt is not matching what you want. The instructions say to insert this little fragment :
<xsl:when test="string(number(translate(translate(@value,$nbsp,''),',.','11')))!='NaN'">
<xsl:attribute name="ss:StyleID">TextBoxNumber</xsl:attribute>
</xsl:when>
This says 'when you find a number, the fragment of xml we are currently generating should have an attribute ss:StyleID="TextBoxNumber" added to it'
Above this we have '<Cell xmlns="urn:schemas-microsoft-com:office:spreadsheet">', which will be changed to
<Cell xmlns="urn:schemas-microsoft-com:office:spreadsheet" ss:StyleID="TextBoxNumber">
if the fragment doesn't recognise a number it will generate
<Cell xmlns="urn:schemas-microsoft-com:office:spreadsheet" ss:StyleID="TextBox">
this will then be followed by '<data>some data</data></cell>'
To see whats going wrong, you need to look at the output before excel modifies it. To do this, open a copy of windows explorer. In the address bar type '%temp%' and sort by date. The last file produced should be something like 'ORDER-12345-client name - sales order.xml'. Open it in notepad and look for the number which is coming out incorrectly. This won't be easy as it comes out as one huge long line.
Check the StyleID being applied and if its not TextBoxNumber they you have a problem with the pasted fragment. If it is then you have a problem with the definition of the style and its defaulting to plain text.
Sorry about the xslt I posted earlier - should have added some more explanation. What I posted was how to format a cell using xslt, not how to investigate this problem.
Ian