【问题标题】:rubyXL iterate through specific column from xslxrubyXL 遍历来自 xlsx 的特定列
【发布时间】:2017-08-18 08:18:50
【问题描述】:

我是 ruby​​ 和 ruby​​XL 的新手,并且有(也许)一个简单的问题。 我有一个用 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

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

【问题讨论】:

    标签: ruby rubyxl


    【解决方案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}
    

    【讨论】:

    • 抱歉让您久等了。那工作得很好。另外,我现在了解这是如何工作的。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多