Analyser des fichiers XLS et XLSX (MS Excel) avec Ruby

Comment lire et analyser des fichiers Excel (.xls et .xlsx) en Ruby ?

Utilisez la gem roo :

require 'roo'

xlsx = Roo::Spreadsheet.open('fichier.xlsx')
xlsx.default_sheet = xlsx.sheets.first

xlsx.each_row_streaming do |row|
  puts row.map(&:value).inspect
end

Ou creek pour les gros fichiers .xlsx :

require 'creek'

book = Creek::Book.new('fichier.xlsx')
sheet = book.sheets[0]
sheet.rows.each do |row|
  puts row.values.inspect
end