使用rubygem“creek”parsingexcel

嘿家伙,所以我想通过一个Excel文件通过ruby“溪”parsing,它准确地parsing行,但我只想检索列,如只有数据在“A”的cloumn。 正确输出整个excel文件。

require 'creek' creek = Creek::Book.new 'Final.xlsx' sheet= creek.sheets[0] sheet.rows.each do |row| puts row # => {"A1"=>"Content 1", "B1"=>nil, C1"=>nil, "D1"=>"Content 3"} end 

任何build议将不胜感激。

Creek不便于提取列信息,因为它将列和行一起存储在一个string散列键中。

更受欢迎的Roo允许您执行诸如sheet.column(1)并获取整个列。 很简单。

如果你绝对必须有小溪,我注意到有一个名为Ditch的小溪,它增加了一些取柱的能力。 例:

  sheet.rows.each { |r| puts "#{r.index} #{r.get('A')} - #{r.get('B')}" } 

最后,如果你想使用Creek并且不使用附加组件,可以使用Hash#select:

 sheet.rows.each do |row| puts row.select{ |k,v| ["A", "B"].include? k[0]} end