0

我有一个这样的哈希:

hash = {"str1"=>5, "str2"=>9, "str3"=> 3}

hash.keys结果给出 ["str1", "str2", "str3"]

hash.values结果给出 [5, 9, 3]

我正在尝试Axlsx使用sheet.add_row

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]] 
4

1 回答 1

6

只需使用Hash#each来遍历每个键值对:

hash = {"str1"=>5, "str2"=>9, "str3"=> 3}
hash.each { |k, v| sheet.add_row [k, v] }
于 2017-05-08T17:24:02.217 回答