我正在写一个程序,创建一个csv文件。一开始我就有个问题。所以,我的代码是
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。我使用ruby 1.8.7和FasterCSV 1.5.5
发布于 2013-05-08 17:48:22
您正在对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发布于 2013-05-08 17:40:39
我假设您是在Excel中打开此文件。Excel可能未将该文件检测为CSV文件。尝试将数据导入到Excel工作簿中,而不是在excel中打开文件。
https://stackoverflow.com/questions/16437255
复制相似问题