emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] [PATCH] quote the real csv separator


From: Stefan Vollmar
Subject: Re: [Orgmode] [PATCH] quote the real csv separator
Date: Mon, 25 Oct 2010 12:32:06 +0200

Dear Carsten,
dear Nick,

if you are using a standard German locale on either Windows or MacOS, MS Excel 
will use semicolons instead of commas as separators when saving in CSV format - 
so, really, it is "semicolon separated value" by default for MS products - the 
wisdom of this approach is questionable (and one of the many quirks you 
encounter when using Excel in a scientific setting with a traditional mix of 
several locales). The reasoning, presumably, is that the German number format 
uses "," as decimal separator and conflicts with also using commas to separate 
columns. You can simulate this by switching your operating system to 
international settings: German (Excel needs to be restarted to reflect these 
changes).

Warm regards,
 Stefan

On 24.10.2010, at 18:52, Nick Dokos wrote:

> Carsten Dominik <address@hidden> wrote:
> 
>> Hi Lukasz,
>> 
>> thanks for the patch, but I do not understand it.
>> 
>> The separator for csv is always the comma, or am I wrong here?
>> So this function should use comma, hard-coded.  The only place
>> where it is used is when orgtbl-to-csv calls the generic
>> exporter.  It does so with comma as separator and with
>> org-quote-csv-field as formatting function.
>> 
>> What use case do you have in mind?
>> 
>> - Carsten
>> 
> 
> [This is *not* a comment on the patch itself, which I have not looked at
> carefully.]
> 
> CSV started out simple and grew to be a monster (but it is still useful
> despite all that). It's not formally defined, so there are several
> variations, dialects and subdialects.  Here e.g. is the description of
> the python module that handles CSV: it defines an "excel" dialect and an
> "excel_tab" subdialect, the latter using a TAB as a delimiter. If you
> want more details and have python installed, start it up, import csv and
> then say "help(csv)".
> 
> HTH,
> Nick
> 
> ,----
> | NAME
> |     csv - CSV parsing and writing.
> | 
> | FILE
> |     /usr/lib/python2.5/csv.py
> | 
> | MODULE DOCS
> |     http://www.python.org/doc/current/lib/module-csv.html
> | 
> | DESCRIPTION
> |     This module provides classes that assist in the reading and writing
> |     of Comma Separated Value (CSV) files, and implements the interface
> |     described by PEP 305.  Although many CSV files are simple to parse,
> |     the format is not formally defined by a stable specification and
> |     is subtle enough that parsing lines of a CSV file with something
> |     like line.split(",") is bound to fail.  The module supports three
> |     basic APIs: reading, writing, and registration of dialects.
> |     
> |     
> |     DIALECT REGISTRATION:
> |     
> |     Readers and writers support a dialect argument, which is a convenient
> |     handle on a group of settings.  When the dialect argument is a string,
> |     it identifies one of the dialects previously registered with the module.
> |     If it is a class or instance, the attributes of the argument are used as
> |     the settings for the reader or writer:
> |     
> |         class excel:
> |             delimiter = ','
> |             quotechar = '"'
> |             escapechar = None
> |             doublequote = True
> |             skipinitialspace = False
> |             lineterminator = '\r\n'
> |             quoting = QUOTE_MINIMAL
> |     
> |     SETTINGS:
> |     
> |         * quotechar - specifies a one-character string to use as the 
> |             quoting character.  It defaults to '"'.
> |         * delimiter - specifies a one-character string to use as the 
> |             field separator.  It defaults to ','.
> |         * skipinitialspace - specifies how to interpret whitespace which
> |             immediately follows a delimiter.  It defaults to False, which
> |             means that whitespace immediately following a delimiter is part
> |             of the following field.
> |         * lineterminator -  specifies the character sequence which should 
> |             terminate rows.
> |         * quoting - controls when quotes should be generated by the writer.
> |             It can take on any of the following module constants:
> |     
> |             csv.QUOTE_MINIMAL means only when required, for example, when a
> |                 field contains either the quotechar or the delimiter
> |             csv.QUOTE_ALL means that quotes are always placed around fields.
> |             csv.QUOTE_NONNUMERIC means that quotes are always placed around
> |                 fields which do not parse as integers or floating point
> |                 numbers.
> |             csv.QUOTE_NONE means that quotes are never placed around fields.
> |         * escapechar - specifies a one-character string used to escape 
> |             the delimiter when quoting is set to QUOTE_NONE.
> |         * doublequote - controls the handling of quotes inside fields.  When
> |             True, two consecutive quotes are interpreted as one during read,
> |             and when writing, each quote character embedded in the data is
> |             written as two quotes
> `----
> 
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

-- 
Dr. Stefan Vollmar, Dipl.-Phys.
Head of IT group
Max-Planck-Institut für neurologische Forschung
Gleuelerstr. 50, 50931 Köln, Germany
Tel.: +49-221-4726-213  FAX +49-221-4726-298
Tel.: +49-221-478-5713  Mobile: 0160-93874279
E-Mail: address@hidden   http://www.nf.mpg.de







Attachment: smime.p7s
Description: S/MIME cryptographic signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]