2009-02-19 2 views

risposta

41

Sì, è necessario avvolgere tra virgolette:

"some value 
over two lines",some other value 

Da this document, che è lo standard CSV generalmente accettato:

un campo che contiene incorporato interruzioni di linea deve essere surounded di virgolette

+1

non è il generalmente accettati formattare RFC 4180? https://en.wikipedia.org/wiki/Comma-separated_values ​​ – HaveAGuess

+0

L'articolo di wikipedia dice anche "... (tuttavia, molte implementazioni CSV non supportano interruzioni di riga incorporate)." – dansalmo

+0

Kent, per la mia domanda qui http://stackoverflow.com/questions/43943003/encoding-csv-clrf-into-newlines/43943173?noredirect=1#comment74919143_43943173, quando dici che le virgolette doppie vanno a capo delle interruzioni di riga, si avvolge anche le codifiche '\ n \ r', vale a dire,' "Cliente \ r \ n" "Hallo \ r \ n" "hola \ r \ n" "\ r \ n" "", o al di fuori come '" Cliente "\ r \ n" hallo "\ r \ n" hola "\ r \ n" "" '.Provare entrambi i modi in Google fogli e numeri non sembra rendere il lavoro multilinea nella cella – Growler

1

Non penso che sia parte dello standard (se ci anche uno), ma è possibile utilizzare l'escape standard in stile C, ovvero codificare \ r \ n.

Tenere presente, tuttavia, che se si esegue questa operazione, è necessario codificare anche il carattere di escape, ad esempio \ yields \ after decoding.

+2

csv non usa l'escape in stile C –

+1

alcune app csv supportano questo modulo. csv è uno standard deplorevolmente definito male. Parlare di Excel csv è (pragmaticamente) il meglio anche se questo non è – ShuggyCoUk

10

la variante più comune di csv che è quella compatibile con excel consentirà newline incorporate fintanto che il campo è circondato da virgolette doppie.

foo,bar,"blah blah 
more blah blah",baz 

o

foo,bar,"blah blah 
more blah blah" 

o

"blah blah 
more blah blah",baz 

sono tutti validi. Questo meccanismo consente anche le virgole incorporate.

Anche le virgolette sui campi testuali senza righe nuove incorporate (o virgole) vanno bene. Se il testo stesso contiene una virgola doppia, allora il meccanismo per sfuggire è mettere insieme due, per esempio.

foo,bar,"this person said ""blah blah 
more blah blah""",baz 

Scrivi lettore csv che gestisce questo correttamente può essere difficile (soprattutto se si fa affidamento sulle espressioni regolari).

7

Menzione è stata fatta qui di uno standard per CSV. Sarei interessato a sapere di più su questo - le uniche norme io sappia sono

+0

sì, l'RFC a cui si collega è lo standard definitivo. Si menziona l'inserimento di CRLF tra virgolette per evitarlo. Sfortunatamente, il tuo punto di vista su ciò che Excel accetta è valido ... un altro caso di SM che cerca di sovvertire gli standard. – rmeador

+0

grazie per la conferma –

+1

Quella RFC è stata creata nel 2005! Excel ha supportato CsV per un tempo molto più lungo di quello ... – ShuggyCoUk