Christoph Michael Becker wrote:
>
sonnic...@gmail.com wrote:
>> I am saving CSV files from a PHP app, but I face 2 problems:
>> 1. stock numbers are sometimes just numbers, but I'd like to keep them as
>> strings 2. prices are e.g. 5.2 which Excel translates as a date.
>>
>> Say:
>>
>> Item;Name;Price;Amount;Total
>> 123;Test;5.2;1;5.2
>> 124;Test2;1.2;2;2.4
>> Total;;;;=sum(e2:e3)
>>
>> Just copy this into notepad and save with csv extension and you will see.
>>
>> I'd like to have 123 and 124 as strings, and eg 5.2 as a float.
>> Can I format it better than this?
>
> Most likely not. CSV files store all values as strings, and it's up to
> the application that uses these data how to interpret them. I would
> expect Excel to present a dialog where this can be configured, when you
> import a CSV file (IIRC that was so with Excel 2000; haven't used it
> since then).
It depends on how you import the data. IIRC (it has been a year), opening
the CSV directly with MS Excel (from Explorer or the browser) gives you no
options, not even the choice of character encoding. Therefore, it is
imperative to quote all values where the type should not determined by
Excel. This is different if you use the Import Data dialog.
You would need to do this manually as fputcsv() can only either quote
nothing or everything. Or perhaps/probably ZF has a capability that could
be reused; I have not checked.
> FWIW: regarding the CSV format there is the *informational* RFC 4180[1].
Fascinating.
> If you're looking particularly for interchange with Excel, you may
> consider to create .xls files instead of CSV files.
That would be .xlsx by now, and it is really not necessary for plain data.
However, I would be surprised if CSVs could contain formulae for import.
PointedEars
--
Prototype.js was written by people who don't know javascript for people
who don't know javascript. People who don't know javascript are not
the best source of advice on designing systems that use javascript.
-- Richard Cornford, cljs, <f806at$ail$1$
8300...@news.demon.co.uk>