FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » Storing strings and numbers properly in CSV files
Show: Today's Messages :: Polls :: Message Navigator
Return to the default flat view Create a new topic Submit Reply
Re: Storing strings and numbers properly in CSV files [message #185630 is a reply to message #185625] Tue, 22 April 2014 23:27 Go to previous messageGo to previous message
Thomas 'PointedEars'  is currently offline  Thomas 'PointedEars'
Messages: 701
Registered: October 2010
Karma:
Senior Member
Christoph Michael Becker wrote:

> sonnichjensen(at)gmail(dot)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$8300dec7(at)news(dot)demon(dot)co(dot)uk>
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Mock HTTP servers for unit tests.
Next Topic: scandir problem
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Thu Sep 19 16:50:48 GMT 2024

Total time taken to generate the page: 0.02785 seconds