> Hello,
> I exchange ODS and XLS files between the French Canadian (decimal
> separator « , ») and English US/Canada locales (decimal separator « .
> ») without issues. When the number is already in a cell on a worksheet,
> the application will use the locale to display a decimal number in the
> correct way.
> However, you cannot transfer files in text format (such as CSV)
> directly from one to the other because the formatting of the decimal
> numbers will conform to the current locale when the file is created: if
> I import a CSV file created from the "English" version, afer the import
> I must do a global replace of « . » to « , » to make numbers become
> numbers again. Also, when going the other way, the CSV separator is
> usually a « ; » to allow decimal numbers to contain a comma as decimal
> separator, which is something Excel does not always handle very well.
Ok maybe I mixed CSV with excel files and that is where my confusion
starts. You are right the xlsx format seems pretty save.
> So far, the best way I found is to save as XLS (or XLSX) from LO (Excel
> considers ODS files as "broken" and does not preserve formulas), do the
> changes in Excel, then open the XLS file in LO and save in ODS. Just
> remember here that some page and cell formatting may be lost in the
> exchange, so do not attempt anything fancy on that front :-).
Still the excel files, when opened in excel contain cells with small
green edges, which according to the documentation is a indication of
possible format violation.
> If you use formulas that format numbers (=TEXT()), you will need to
> have some intelligence to use the proper separator when encoding the
> number format (more so for Excel than for LO). What I usually do is
> have a cell that I name SEP that contains a formula like this:
> =IF(ISNUM("3.4");".";",")
> Then when I need to format a value with the =TEXT() function, I use it
> this way to have a number with one decimal digit:
> =TEXT(value;"0"&SEP&"0") or, if you prefer,
> =TEXT(value;CONCATENATE("0";SEP;"0"))
> In English locales, this translates to: =TEXT(value;"0.0"); in the non-
> English locale, it becomes =TEXT(value;"0,0")
> I hope this helps.
Thanks it does, will try to avoid to use the TEXT function, though.
Uwe Brauer
--
To unsubscribe e-mail to: users+unsubscribe@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.