我是ruby和rubyXL的新手,(也许)有一个简单的问题。我有一个用RubyXL解析的Excel文件。
然后,我想将B列中的所有值保存到一个数组中。我不知道该怎么做。也许有人能帮我?
@workbook = RubyXL::Parser.parse(path)
.
.
.
@excelColumnB = Array.new
#only iterate column B (1)
@workbook.worksheets[0].each[1] { |column|
column.cells.each { |cell|
val = cell && cell.value
excelColumnB.push(val)
puts val
}
}
return excelColumnB我知道这个例子是错误的。我试过很多方法。
发布于 2017-08-18 20:29:27
each[1]是您的主要问题。你不能用这种方式索引迭代器,它在语法上是不正确的。block变量包含行,而不是列。
试试这个:
@workbook.worksheets[0].each { |row|
val = row[1].value
@excelColumnB << val
puts val
}但我推荐一种更简洁的方法来创建数组:
@col_b = workbook.worksheets[0].collect {|row| row[1].value}https://stackoverflow.com/questions/45751875
复制相似问题