Ruby / Watir:无法使用电子表格GEM解析xls列

时间:2014-01-29 12:04:29

标签: ruby excel watir

我正在使用“电子表格”GEM来解析xls表格中的数据。我使用的xls具有类似于下面所示的数据:

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

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

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

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

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告诉您有多少列。
  • sheet1.column(column)获取指定索引的列(从0开始)。
  • sheet1.column(column).to_a获取列中的所有值。列中的行数基于具有最多行数的列。因此,某些列最终可能具有空白值。 .compact用于删除这些内容。