我正在编写一个程序,它创建了一个csv-File。我一开始就遇到了问题。 所以,我的代码是
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
我想,我会在输出文件中得到4列,就像这行| csv | data一样。但我得到的是一个单元格A1中的“row,of,CSV,data”。我该如何解决这个问题?提前致谢! PS。我使用ruby 1.8.7和FasterCSV 1.5.5
答案 0 :(得分:2)
您正在对CSV字符串进行两次编码。这应该有效:
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
您还可以指定自定义列分隔符:
FasterCSV.open(destfile, "wb", { :col_sep => "|" }) do |csv|
# ...
end
答案 1 :(得分:1)
我认为你是在Excel中打开它。 Excel可能无法将文件检测为CSV文件。尝试将数据导入excel工作簿,而不是在Excel中打开文件。