我有这样的哈希:
hash = {"str1"=>5, "str2"=>9, "str3"=> 3}
hash.keys
结果为["str1", "str2", "str3"]
hash.values
结果为[5, 9, 3]
我正在尝试使用Axlsx
sheet.add_row
的Excel
sheet.add_row [hash.keys[0], hash.values[0]] # hash.keys[0] = "str1" and hash.values[0] = 5
sheet.add_row [hash.keys[1], hash.values[1]] # hash.keys[1] = "str2" and hash.values[1] = 9
sheet.add_row [hash.keys[2], hash.values[2]] # hash.keys[2] = "str3" and hash.values[2] = 3
在Excel工作表中,这是结果
如果散列不大但是如果它由20个或更多元素组成,这很简单,这样做这样做根本就不实际! 我希望以更好的方式为哈希的所有元素执行此操作。
sheet.add_row [hash.keys[0], hash.values[0]]
sheet.add_row [hash.keys[1], hash.values[1]]
sheet.add_row [hash.keys[2], hash.values[2]]
........
sheet.add_row [hash.keys[19], hash.values[19]]
答案 0 :(得分:6)
只需使用Hash#each
迭代每个键值对:
hash = {"str1"=>5, "str2"=>9, "str3"=> 3}
hash.each { |k, v| sheet.add_row [k, v] }