2014-07-14 97 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

谢谢。欣赏输入 –