Skip to content

Instantly share code, notes, and snippets.

@aya-soft
Last active February 13, 2019 18:42
Show Gist options
  • Save aya-soft/5099720 to your computer and use it in GitHub Desktop.
Save aya-soft/5099720 to your computer and use it in GitHub Desktop.
Spreadsheet: wrong value from formula
#encoding: utf-8
require 'spreadsheet'
xls_file_name = "/tmp/status_data.xls"
xls_book = Spreadsheet.open(xls_file_name, "rb")
xls_book.worksheet(0).each do |row|
puts row[6].value if row[6] and row[6].is_a?(Spreadsheet::Formula)
end
@zdavatz
Copy link

zdavatz commented Mar 6, 2013

I am now trying this:

#encoding: utf-8

require 'spreadsheet'

xls_file_name = "/tmp/status_data.xls"

xls_book = Spreadsheet.open(xls_file_name, "rb")
xls_book.worksheet(0).each do |row|
puts row[6].try(:value) if row[6] and row[6].is_a?(Spreadsheet::Formula)

end

but I get this error:

aya.rb:10:in block in <main>': undefined methodtry' for #Spreadsheet::Formula:0x000000022a5f38 (NoMethodError)
from /usr/local/lib64/ruby/gems/1.9.1/gems/spreadsheet-0.8.1/lib/spreadsheet/worksheet.rb:133:in block in each' from /usr/local/lib64/ruby/gems/1.9.1/gems/spreadsheet-0.8.1/lib/spreadsheet/worksheet.rb:132:inupto'
from /usr/local/lib64/ruby/gems/1.9.1/gems/spreadsheet-0.8.1/lib/spreadsheet/worksheet.rb:132:in each' from /usr/local/lib64/ruby/gems/1.9.1/gems/spreadsheet-0.8.1/lib/spreadsheet/excel/worksheet.rb:35:ineach'
from aya.rb:9:in `

'

So I really need a clean script from you!

Best
Zeno

@zdavatz
Copy link

zdavatz commented Mar 7, 2013

With above script I get

/tmp> ruby aya.rb
7.5
5.37
7.52
9.78

with your sample XLS (not modified by me) on my Gentoo Linux.

Best
Zeno

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment