rss
twitter
    Find out what I'm doing, Follow Me :)

How to export data using MS word or MS excel

Its also very easy to export data to doc format or xls format. There is no plugin or gem required for that.
The procedure is :

FOR XLS FORMAT:


def export
headers['Content-Type'] = "application/vnd.ms-excel"
headers['Content-Disposition'] = 'attachment; filename="excel-export.xls"'
headers['Cache-Control'] = ''
@records = Record.find(:all)
end


and

FOR DOC FORMAT


def export
headers['Content-Type'] = "application/vnd.ms-word"
headers['Content-Disposition'] = 'attachment; filename="excel-export.doc"'
headers['Cache-Control'] = ''
@records = Record.find(:all)
end

How to export data to CSV In Ruby on Rails

The exporting of data to CSV in Rails is very easy just like snitching icecream from 2 year baby. You just need to install a Gem for it and a method and its done.

The procedure is written below:-

1. install the fastercsv gem :-

sudo gem install fastercsv


2. now in the controller use this gem and copy the method in the bottom of your controller and also use CSV as written:-


class ArticlesController < ApplicationController

require 'fastercsv'
......
.
.
.

def show_users
@users = User.find(:all)
stream_csv do |csv|
csv << ["Show all the users in excel"]
csv << [""]
csv << ["ID" ,"Name" ,"Address" ,"Email"]
@users.each do |u|
csv << [u.id, u.name, u.address, u.email]
end
end

end

private
def stream_csv

filename = action_name + ".csv"

#this is required if you want this to work with IE
if request.env['HTTP_USER_AGENT'] =~ /msie/i
headers['Pragma'] = 'public'
headers["Content-type"] = "text/plain"
headers['Cache-Control'] = 'no-cache, must-revalidate, post-check=0, pre-check=0'
headers['Content-Disposition'] = "attachment; filename=\"#{filename}\""
headers['Expires'] = "0"
else
headers["Content-Type"] ||= 'text/csv'
headers["Content-Disposition"] = "attachment; filename=\"#{filename}\""
end

render :text => Proc.new { |response, output|
csv = FasterCSV.new(output, :row_sep => "\r\n")
yield csv
}
end

end




and its done. You have exported data to excel sheet .