Problem with downloading a generated Excel sheet

Hello,

I’m using the spreadsheet/excel gem to generate an excel sheet that I
want user to be able to download it once it’s generated. Please take a
look on the below code:

@contacts=Contact.find(:all)
if @contacts.size>0
file="#{Date.today}_Report.xls"

    workbook=Spreadsheet::Excel.new("#{RAILS_ROOT}/public/reports/#{file}")
    worksheet=workbook.add_worksheet("All Users on Database")
    worksheet.write(0, 0, "First Name")
    worksheet.write(0, 1, "Last Name")
    worksheet.write(0, 2, "Email")
    row = 2
    @contacts.each do |users|
      worksheet.write(row, 0, "#{users.first_name}")
      worksheet.write(row, 1, "#{users.last_name}")
      worksheet.write(row, 2, "#{users.email}")

      row += 1

    end

    workbook.close
    send_file "#{RAILS_ROOT}/public/reports/#{file}", :type =>

‘text/xl; charset=utf-8; header=present’, :disposition =>
‘attachement’,:filename=>"#{file}"

The excel sheet is generated correctly, but the last line gives an error
in the server, and no file is downloaded.

Here is the error:
NoMethodError (undefined method `call’ for nil:NilClass):

I don’t know what is the nill class of the above line.

Can anyone help me?

Thank you for your response, It helped me a lot.

Ahmed A. wrote:

Hello,

I’m using the spreadsheet/excel gem to generate an excel sheet that I
want user to be able to download it once it’s generated. Please take a
look on the below code:

[snip]

    workbook.close
    send_file "#{RAILS_ROOT}/public/reports/#{file}", :type =>

‘text/xl; charset=utf-8; header=present’, :disposition =>
^^
This is a typo, should be ‘text/xls’?

‘attachement’,:filename=>“#{file}”
^^^^^^^^^^^
This is a typo, should be ‘attachment’

The excel sheet is generated correctly, but the last line gives an error
in the server, and no file is downloaded.

Here is the error:
NoMethodError (undefined method `call’ for nil:NilClass):

I don’t know what is the nill class of the above line.

My guess is attachement.

Can anyone help me?

HTH,
gvb

You received this message because you are subscribed to the Google
Groups “Ruby on Rails: Talk” group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.