2014-07-14 134 views
0

如何將哈希的內容作爲第一行和後續行中的值輸出到excel/csv中?我有以下幾點,但是由於我多次打開csv,效率不高。將哈希導出爲csv - 將第一行作爲哈希鍵並將其作爲哈希值

rowid = -1 
CSV.open("file.csv", 'a') do |csv| 
    details.each do |hsh| 
    rowid += 1 
    if rowid == 0 
     csv << hsh.keys# adding header row (column labels) 
    else 
     csv << hsh.values 
    end 
    end 
end 
+0

什麼是'details'? – sawa

+0

我不明白你的意思是「因爲我多次打開csv而效率不高」。你的循環似乎在csv開放塊內,它只執行一次。 – sawa

+0

整個塊在另一個循環內。但是想一想,我別無選擇,只能多次打開csv。對不起,對於一個不正確的問題,並感謝指出!謝謝 –

回答

0

我只想提的是,CSV類給你寫頭這樣的能力:

columns = details[inner_hash].keys.to_a 
CSV.open('test.csv', 'w', write_headers: true, headers: columns) do |csv| 
    #logic in here 
end 
+0

謝謝。欣賞輸入 –