0

我需要将我的 CSV 布局为列而不是行。所以沿着电子表格走下去不会跨越。例如:

标题 1,value1.1,value2.1
标题 2,value1.2,value2.2
标题 3,value1.3,value2.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"
4

1 回答 1

1

只需在写入 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

这个对我有用。

于 2011-02-06T12:58:15.347 回答