2010-11-10 11 views
5

Ich arbeite an der CSV-Generation. Ich unterscheide Werte, die durch Komma getrennt sind (,). Wenn der Wert in einem Feld ein Komma enthält, sollte das Feld in Excel nicht getrennt werden. Deshalb möchte ich dort einen Escape-Charakter setzen. Ich benutze FasterCsv. Also wie kann ich einen Escape-Charakter setzen. Was ist der Escape-Charakter von fastercsv?Escape Comma Werte in fastercsv

Antwort

2

Wenn Sie Kommas in Ihren Daten haben, setzen Sie einen anderen Spaltentrenner mit der Option: col_sep. Wenn Sie Ihre Kommas mögen und ohne sie nicht leben können, setzen Sie die Daten in Anführungszeichen.

+0

Tabulatorzeichen getrennte Werte halten, sind ein gemeinsame Alternative zu durch Komma getrennt. –

8

zitieren Nur jedes Feld (doublequotes Standardeinstellung) und Kommas in ihnen ignoriert werden:

CSV.generate(:col_sep=>',', :quote_char => '"') do |row| 
    row << ["Quid, quid", "latinum dictum"] 
    row << ["sit, altum", "viditur."] 
end 
=> "\"Quid, quid\",latinum dictum\n\"sit, altum\",viditur.\n" 
+1

wäre es "Videtur" – sixty4bit

1

Wenn Sie die FasterCSV Methoden verwenden, wird diese automatisch für Sie hantieren!

0

ein kreativer Weg ist es, das echte Komma durch ein Doppelgänger zu ersetzen. Das kann dumm sein, alles hängt von Ihrem Anwendungsfall ab. Es war in Ordnung für uns - denke ich. Ich brauche dies zu schreiben, bevor ich meine Meinung ändern, lol

my_string.gsub(',','‚') 

Ich bin mir nicht sicher, ob es diese korrekt eingefügt kopieren, aber man kann es auf dem Mac erstellen, indem ALT(option) + ,