Subject: [xsl] Working with Scientific Notation From: "Michael H. Semcheski" <mhs-list@xxxxxxxxx> Date: Fri, 04 Oct 2002 12:12:35 -0400
I was wondering if anyone knows of a good way to convert very small
numbers represented in scientific notation to a standard decimal.
The situation is this: I converted a spreadsheet from MS Excel 2002
into an MS XML Spreadsheet (more on that later). I have an xsl file
that can convert the spreadsheet into a
more-attractive-than-the-MS-html-output html file. (And in total, there
are too many files to do things worksheets that need to be converted to
do this by hand). Many of the values that are formatted as percents in
excel show up in scientifc notation (eg -9.1053999999999996E-2) in the
xml output. When I try to format them with format-number(), they show
up as NaN. (This is the MSXML DOMDocument 3.0, by the way). Now I
think I've read that JDK 1.2 processors don't bite on this, but the
MSXML does. This is a real pain, because the decimals really need to be
rounded by format-number() for the output to look decent.
On the Excel 2002 save as XML Spreadsheet option, I have been impressed.
The output is well organized, most of the formatting info shows up in
the first three or four nodes of the element, and all the data is in
Worksheet nodes under the element and after the formatting info. Not
too bad. The trick in creating the stylesheet for this (which held me
up for a while, and so I'm writing this so that it might turn up in a
search by someone in the same situation) is that the default namespace
is microsoft-com:office-spreadsheet (ss), and if you don't catch this
reference in the document element, you would not know that to match the
Workbook or Worksheet (or most of their children) you need to add
ss:Workbook or ss:Worksheet or ss:Table etc.