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
被用来删除这些。