I had a template file, and want to export the detail information to customer using this template file.
Here are my codes:
require 'spreadsheet'
Spreadsheet.client_encoding = 'UTF-8'
template = "#{RAILS_ROOT}/public/person.xls"
output = "#{RAILS_ROOT}/tmp/person.xls"
book = Spreadsheet.open template
sheet1 = book.worksheet 0
sheet1.row(4).replace [ 'Daniel J. Berger', 'U.S.A.',
'Author of original code for Spreadsheet::Excel' ]
book.write output
send_file output, :filename=>"person.xls"
And got a error:
NoMethodError in PeopleController#show
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.select
The callstack is:
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/excel/writer/worksheet.rb:101:in
`strings'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/inflector.rb:283:in `inject'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/worksheet.rb:98:in `call'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/worksheet.rb:98:in `each'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/worksheet.rb:97:in `upto'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/worksheet.rb:97:in `each'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/excel/worksheet.rb:33:in `each'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/excel/writer/worksheet.rb:100:in
`inject'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/excel/writer/worksheet.rb:100:in
`strings'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/excel/writer/workbook.rb:74:in
`complete_sst_update?'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/inflector.rb:283:in `inject'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/excel/writer/workbook.rb:73:in `each'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/excel/writer/workbook.rb:73:in `inject'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/excel/writer/workbook.rb:73:in
`complete_sst_update?'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/excel/writer/workbook.rb:152:in
`write_changes'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/excel/writer/workbook.rb:573:in
`write_workbook'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/writer.rb:14:in `write'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/writer.rb:13:in `open'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/writer.rb:13:in `write'
E:/Workarea/ROR/ruby/lib/ruby/gems/1.8/gems/spreadsheet-0.6.1.9/lib/spreadsheet/workbook.rb:107:in `write'
app/controllers/people_controller.rb:59:in `show'
|