我需要将CSV布局为列,而不是行。所以顺着电子表格走下去,而不是跨过。例如:
标题1,value1.1,value2.1
标题2,值1.2,值2.2
标题3,值1.3,值2.3
有人知道怎么做吗?我已经浏览了文档,但找不到任何关于将布局更改为列的内容。
编辑:
row_data = [];
csv_string = FasterCSV.generate do |csv|
# header row
row_data << ["id", "Name", "Age"]
# data rows
Playerapplication.find_each do |player|
row_data << [player.id, player.name, player.age]
end
row_data.transpose
csv << row_data
end
# send it to the browser
send_data csv_string,
:type => 'text/csv; charset=iso-8859-1; header=present',
:disposition => "attachment; filename=players_application.csv"发布于 2011-02-06 20:58:15
在写入CSV之前,只需对数据使用Array#transpose即可。
如果你像这样修改你的代码:
row_data = [];
csv_string = FasterCSV.generate do |csv|
# header row
row_data << ["id", "Name", "Age"]
# data rows
Playerapplication.find_each do |player|
row_data << [player.id, player.name, player.age]
end
row_data.transpose.each do |row|
csv << row
end
end这对我很管用。
https://stackoverflow.com/questions/4913384
复制相似问题