2010-11-10 7 views
5

Je travaille sur la génération csv. Je sépare les valeurs qui sont séparées par une virgule (,). Si la valeur d'un champ contient une virgule, il ne doit pas séparer le champ dans Excel. Donc je veux mettre un personnage d'échappement là. J'utilise FasterCsv. Alors, comment je peux mettre un caractère d'échappement. Quel est le caractère d'échappement de fastercsv?Echappez des valeurs de virgules dans 0sec

Répondre

2

Si vous avez des virgules dans vos données, définissez un séparateur de colonne différent avec l'option: col_sep. Si vous aimez vos virgules et ne pouvez pas vivre sans elles, placez les données entre guillemets.

+0

valeurs séparées par des tabulations sont un alterné commun à des virgules séparées. –

8

Il suffit de citer tous les domaines (doublequotes par défaut) et des virgules à l'intérieur d'entre eux sont ignorés:

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

ce serait "videtur" – sixty4bit

1

Si vous utilisez les méthodes de FasterCSV, pour vous sera automatiquement gérée!

0

une manière créative est de remplacer la virgule réelle par un sosie. Cela peut être stupide, tout dépend de votre cas d'utilisation. C'était correct pour nous - je pense. Je dois poster avant que je change d'avis, lol

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

Je ne sais pas si elle copie collée correctement, mais vous pouvez créer sur mac en tenant ALT(option) + ,

Questions connexes