Ruby / Watir:无法使用电子表格GEM通过xls列进行parsing

我正在使用“Spreadsheet”GEM来parsingxls表单中的数据。 我正在使用的xls有类似于下面显示的数据:

我需要parsing所有填充的单元格在一列,然后移动到下一列。 我正在使用以下代码来实现这一点:

sheet1 = book.worksheet 0 sheet1.each do |row| break if row[0].nil? @browser.link(:href => row[1]).when_present.click end 

如何确保代码parsing第一列中的所有单元格,然后在完成第一列之后移动到下一列? 上面显示的代码仅parsing第一列。

你可以做到以下几点:

 sheet1 = book.worksheet 0 0.upto(sheet1.column_count) do |column| sheet1.column(column).to_a.compact.each do |cell_text| @browser.link(:href => cell_text).when_present.click end end 

说明:

  • sheet1.column_count告诉你有多less列。
  • sheet1.column(column)在指定的索引处获取一列(从0开始)。
  • sheet1.column(column).to_a获取sheet1.column(column).to_a所有值。 列中的行数基于具有最多行数的列。 因此,最后一些列可能会有空白值。 .compact被用来删除这些。