rubyXL遍历xslx中的特定列

时间:2017-08-18 08:18:50

标签: ruby rubyxl

我是ruby和rubyXL的新手,并且(可能)有一个简单的问题。 我有一个Excel文件,我用RubyXL解析。

然后我想将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

我知道这个例子是错的。我尝试了很多东西。

1 个答案:

答案 0 :(得分:1)

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}