rubyXL 遍历 xlsx 中的特定列
rubyXL iterate through specific column from xslx
我是 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
我知道这个例子是错误的。我尝试了很多东西。
each[1]
是你的主要问题。您不能以这种方式索引迭代器,这在语法上是不正确的。块变量包含一行,而不是一列。
试试这个:
@workbook.worksheets[0].each { |row|
val = row[1].value
@excelColumnB << val
puts val
}
但我推荐一种更简洁的方法来创建数组:
@col_b = workbook.worksheets[0].collect {|row| row[1].value}
我是 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
我知道这个例子是错误的。我尝试了很多东西。
each[1]
是你的主要问题。您不能以这种方式索引迭代器,这在语法上是不正确的。块变量包含一行,而不是一列。
试试这个:
@workbook.worksheets[0].each { |row|
val = row[1].value
@excelColumnB << val
puts val
}
但我推荐一种更简洁的方法来创建数组:
@col_b = workbook.worksheets[0].collect {|row| row[1].value}