Ruby on rails 在ruby上将数组转换为CSV文件
给定数组:Ruby on rails 在ruby上将数组转换为CSV文件,ruby-on-rails,arrays,ruby,database,csv,Ruby On Rails,Arrays,Ruby,Database,Csv,给定数组: a = [[111,"Tue, 30 Jun 2015 23:50:55 KST +09:00"],[123,"Tue, 30 Jun 2015 23:50:55 KST +09:00"]] 我想将此数组转换为一个新的CSV文件,其中包含新列,如下所示: user_id | created_at -------------------- 111 | Tue, 30 Jun 2015 23:50:55 KST +09:00 123 | Tue, 30 Jun 2015
a = [[111,"Tue, 30 Jun 2015 23:50:55 KST +09:00"],[123,"Tue, 30 Jun 2015 23:50:55 KST +09:00"]]
我想将此数组转换为一个新的CSV文件,其中包含新列,如下所示:
user_id | created_at
--------------------
111 | Tue, 30 Jun 2015 23:50:55 KST +09:00
123 | Tue, 30 Jun 2015 23:50:55 KST +09:00
我怎么用Ruby做这个?
提前感谢。我通过适当的缩进(第二次编辑)成功地做到了这一点
headers = ["user_id", "created_at"]
CSV.open("myfile.csv", "w", :col_sep => "\t| ", :headers => true) do |csv|
csv << headers
csv << ["-"*(headers.join.length+4*headers.length)] #Header separator in the length of header columns + tabs
a.each {|row| csv << row } #Adding rows for each element of a
end
headers=[“用户id”,“创建于”]
CSV.open(“myfile.CSV”、“w”,:col_sep=>“\t |”,:headers=>true)do | CSV|
csvdef导出
数组=[111,“2015年6月30日星期二23:50:55 KST+09:00”],[123,“2015年6月30日星期二23:50:55 KST+09:00”]
csv|u data=csv.generate do|csv|
csv“data.csv”)
结束
在模型中创建方法,我希望这对您有用。我的测试。你想干什么就干什么
CSV.generate(option) do |csv|
csv << ['user_id', 'created_at']
[[111,"Tue, 30 Jun 2015 23:50:55 KST +09:00"],[123,"Tue, 30 Jun 2015 23:50:55 KST +09:00"]].each do |array|
csv << array
end
end
CSV.generate(选项)do | CSV|
csv@sanfor,但我想我的问题有点不同,因为我的问题包括生成新列。提供的数组无效。应该是这样的a=[[111,“周二,2015年6月30日23:50:55 KST+09:00”],[123,“周二,2015年6月30日23:50:55 KST+09:00”]
@gagangami
CSV.generate(option) do |csv|
csv << ['user_id', 'created_at']
[[111,"Tue, 30 Jun 2015 23:50:55 KST +09:00"],[123,"Tue, 30 Jun 2015 23:50:55 KST +09:00"]].each do |array|
csv << array
end
end