0

CSV を行ではなく列にレイアウトする必要があります。したがって、スプレッドシートを下に移動することはできません。例えば:

ヘッダー 1、値 1.1、値 2.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"
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 に答える