2011-02-06 2 views
0

행이 아닌 열에 내 CSV 레이아웃을 배치해야합니다. 스프레드 시트를 가로 질러 가지 말라. 예를 들어 :빠른 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" 

답변

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, value1.1value1.2value1.3, value2.1value2.2value2.3. 내 코드를 내 게시물로 업데이트했습니다. 틀린 것을 볼 수 있습니까? – Peter

+0

@Peter 간단한 코드 변경으로 대답을 수정했습니다. –

+0

감사합니다. – Peter

관련 문제