FasterCSV问题(Ruby)
问题描述:
我正在编写一个程序,它创建一个csv-File。我一开始就有问题。 所以,我的代码是FasterCSV问题(Ruby)
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 | |数据。但是我得到的是一行A1中的“row,of,CSV,data”。我该如何解决这个问题?提前致谢! PS。我使用红宝石1.8.7和FasterCSV 1.5.5
答
我认为你在Excel中打开它。 Excel可能不会将该文件检测为CSV文件。尝试将数据导入到Excel工作簿中,而不是在Excel中打开该文件。
答
您正在编码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
+0
呀,那帮手,非常感谢! – jenia 2013-05-08 10:02:21
谢谢,我确实如你所说,现在看起来好多了。但是,现在有文本进行一些引号“\t CSV \t数据\t排 ” \t“布拉布拉\t \t ” – jenia 2013-05-08 09:53:34