我正在使用“电子表格”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
如何确保代码解析第一列中的所有单元格,然后在完成第一列后移动到下一列?上面显示的代码只解析第一列。
答案 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
用于删除这些内容。