2011-02-06 10 views
0

我需要將我的CSV佈局爲列而不是行。因此,不要跨越電子表格。例如:FasterCSV佈局

報頭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" 

回答

1

只需使用陣列#寫CSV之前,您的數據調換。

如果您修改代碼:

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 

它爲我工作。

+0

執行轉置不會將值分隔爲新的列/行。每個新記錄都捆綁到一個新列中。所以它沿着一排看起來就像這樣。 Header1Header2Header3,值1.1值1.2值1.3,值2.1值2.2值2.3。我用我的代碼更新了我的帖子。你能看到有什麼不對嗎? – Peter 2011-02-06 16:41:04