ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Stop excel changing the value of numbers in european formt (https://www.excelbanter.com/excel-discussion-misc-queries/224229-stop-excel-changing-value-numbers-european-formt.html)

[email protected]

Stop excel changing the value of numbers in european formt
 
Hi,

I'm generating an excel report using xml transformed by xslt into html
(but saved as a .xls file) that is sent out to a large number of my
business's clients, mainly in Europe.The specification for the report
is that numbers should be shown in European format (. for thousand
seperators and , for decimal point). All was fine until I noticed
that one column of figures had a value that was sometimes was 10 times
larger than it should have been. After investigating further it
appears that if the number is greater than 1 with at least 4 decimal
places, excel treats the decimal point as a thousands seperator and
moves it.

E.g the correct value was 2,2567, excel turned it into 22,567

The easiest way to reproduce is to create an html document that just
shows the value 1,2345 & then drag it into excel.

I know I can change the international settings and all will then work
but because this is being sent out to many external people I want to
ensure they all see the correct value. How can I force excel to show
the number I want correctly?

Thanks for any help,

Stickleback

Sheeloo[_3_]

Stop excel changing the value of numbers in european formt
 
The easiest way (and I believe the right way) is to create the Excel file in
the format of the location you are creating the Excel file in...

So if your system uses comma as thousand separator and dot as decimal then
use that... when any one with European settings (. for thousand seperators
and , for decimal point) opens the workbook, Excel will display the correct
value with the correct format...

If you are sending in XML then your definition should indicate the number
format so that any one reading it can apply appropriate transformations...


" wrote:

Hi,

I'm generating an excel report using xml transformed by xslt into html
(but saved as a .xls file) that is sent out to a large number of my
business's clients, mainly in Europe.The specification for the report
is that numbers should be shown in European format (. for thousand
seperators and , for decimal point). All was fine until I noticed
that one column of figures had a value that was sometimes was 10 times
larger than it should have been. After investigating further it
appears that if the number is greater than 1 with at least 4 decimal
places, excel treats the decimal point as a thousands seperator and
moves it.

E.g the correct value was 2,2567, excel turned it into 22,567

The easiest way to reproduce is to create an html document that just
shows the value 1,2345 & then drag it into excel.

I know I can change the international settings and all will then work
but because this is being sent out to many external people I want to
ensure they all see the correct value. How can I force excel to show
the number I want correctly?

Thanks for any help,

Stickleback


[email protected]

Stop excel changing the value of numbers in european formt
 
Thanks for the reply Sheeloo but unfortunately the people that have
requested this work always want the values shown in european format
regardless of how the actual user viewing the data has their excel set
up. So I suppose what I'm really asking for is 'is there a way of
flagging data in a html formatted file so that when it is opened by
excel it treats it as text (rather than a number) & displays the value
unaltered?' i.e. when opening a html document that contains

<HTML<HEAD<TITLEtest</TITLE</HEAD<BODY<table<tr<td1,3456</
td</tr</table</BODY</HTML

in Excel it shows 1,3456 rather than 13,456 regardless of the settings
in Excel.

Thanks,

Stickleback

[email protected]

Stop excel changing the value of numbers in european formt
 
Thanks for the reply Sheeloo but unfortunately the people that have
requested this work always want the values shown in european format
regardless of how the actual user viewing the data has their excel set
up. So I suppose what I'm really asking for is 'is there a way of
flagging data in a html formatted file so that when it is opened by
excel it treats it as text (rather than a number) & displays the value
unaltered?' i.e. when opening a html document that contains

<HTML<HEAD<TITLEtest</TITLE</HEAD<BODY<table<tr<td1,3456</
td</tr</table</BODY</HTML

in Excel it shows 1,3456 rather than 13,456 regardless of the settings
in Excel.

Thanks,

Stickleback

[email protected]

Stop excel changing the value of numbers in european formt
 
Just worked it out.

You need to include in the html the following style :-

<style
..xl24
{mso-style-parent:style0;
mso-number-format:"\@";
white-space:normal;}
</style

and then the data line should be changed to :-

<td class=xl241,3456</td

I hope that helps someone in the future.

Stickleback


[email protected]

Stop excel changing the value of numbers in european formt
 
Just worked it out.

You need to include in the html the following style :-

<style
..xl24
{mso-style-parent:style0;
mso-number-format:"\@";
white-space:normal;}
</style

and then the data line should be changed to :-

<td class=xl241,3456</td

I hope that helps someone in the future.

Stickleback


[email protected]

Stop excel changing the value of numbers in european formt
 
Just worked it out.

You need to include in the html the following style :-

<style
..xl24
{mso-style-parent:style0;
mso-number-format:"\@";
white-space:normal;}
</style

and then the data line should be changed to :-

<td class=xl241,3456</td

I hope that helps someone in the future.

Stickleback


Sheeloo[_4_]

Stop excel changing the value of numbers in european formt
 
Good that you got the solution...



" wrote:

Just worked it out.

You need to include in the html the following style :-

<style
..xl24
{mso-style-parent:style0;
mso-number-format:"\@";
white-space:normal;}
</style

and then the data line should be changed to :-

<td class=xl241,3456</td

I hope that helps someone in the future.

Stickleback




All times are GMT +1. The time now is 09:05 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com