Je suis en train d’écrire un programme, qui crée un fichier csv. Donc, mon code est
def create_csv
destfile = Rails.root.join("public", "reports", "statistic_csv#{id}.csv")
csv_string = FasterCSV.generate do |out|
out << ["row", "of", "CSV", "data"]
end
FasterCSV.open(destfile, "w") do |csv|
csv << csv_string
end
end
J'ai pensé que j'aurais 4 colonnes dans la sortiefile, smth like this row | of | csv | data. Mais ce que j’obtiens, c’est "rangée, de, CSV, données" dans une cellule A1. Comment puis-je résoudre le problème? Merci d'avance! PS. J'utilise ruby 1.8.7 et FasterCSV 1.5.5
Réponses:
2 pour la réponse № 1Vous codez la chaîne CSV deux fois. Cela devrait fonctionner:
def create_csv
destfile = Rails.root.join("public", "reports", "statistic_csv#{id}.csv")
FasterCSV.open(destfile, "wb") do |csv|
csv << ["row", "of", "CSV", "data"]
end
end
Vous pouvez également spécifier un séparateur de colonne personnalisé:
FasterCSV.open(destfile, "wb", { :col_sep => "|" }) do |csv|
# ...
end
1 pour la réponse № 2
Je suppose que vous ouvrez cela dans Excel. Excel ne détecte peut-être pas le fichier en tant que fichier CSV. Essayez d'importer les données dans un classeur Excel au lieu d'ouvrir le fichier dans Excel.