Date: Sat, 08 Oct 2005 11:16:48 +0000 From: "Nick Brutyn" <brutyn_nick@hotmail.com> To: cvs-all@freebsd.org Subject: Creating excel file with ruby on rails Message-ID: <BAY103-F175A6286B5666C98A50C0E99870@phx.gbl>
next in thread | raw e-mail | index | archive | help
hey, i want to create a excel file with ruby on rails and send that file to the browser (excel file must be supporting all versions) this is what i have so fare, i cant send it to the server, anyone any sollutions def export_excel if @request.env['HTTP_USER_AGENT'] =~ /msie/i @headers['Pragma'] = '' @headers['Cache-Control'] = '' else @headers['Pragma'] = 'no-cache' @headers['Cache-Control'] = 'no-cache, must-revalidate' end @employee_id = @params["employee_id"] @geotag_id = @params["geotag_id"] firm_id = @session[:user].id corrected_server_date = (Time.now).strftime('%Y-%m-%d 00:00:00') @time_entries = TimeEntry.find(:all, :conditions =>["time_entries.firm_id = ? AND employee_id like ? and geotag_id like ?", firm_id, "%#{@employee_id}%", "%#{@geotag_id}%"], :order => "time_entries.start_time DESC", :include=>[:employee,:geotag]) wb = Excel.new("test/timesheets.xls") version = Excel::VERSION # Preferred way to add a format f1 = wb.add_format(:color=>"black",:bold=>1,:italic=>true) f4 = Format.new(:num_format => "d mmm yyyy") f5 = Format.new(:num_format => 0x0f) wb.add_format(f4) wb.add_format(f5) ws1 = wb.add_worksheet("timesheets") #headers @header = ['Employee','Address','Zip','City','Duration','Start','Stop'] #headers afprinten op de 1ste rij 0.upto(@header.length - 1) do |i| ws1.write(0,i,@header[i], f1) end rij = 1 #de gegevens worden getoond vanaf de 2de rij #time entries afprinten for time_entry in @time_entries ws1.write(rij,0,time_entry.employee.last_name + " " + time_entry.employee.first_name) ws1.write(rij,1,time_entry.geotag.address1) ws1.write(rij,2,time_entry.geotag.zip) ws1.write(rij,3,time_entry.geotag.city) if time_entry.stop_time.nil? ws1.write(rij,4,"") ws1.write(rij,5,time_entry.start_time.strftime("%d/%m/%Y %H:%M")) ws1.write(rij,6,"") else ws1.write(rij,4,time_entry.duration) ws1.write(rij,5,time_entry.start_time.strftime("%d/%m/%Y %H:%M")) ws1.write(rij,6,time_entry.stop_time.strftime("%d/%m/%Y %H:%M")) end rij = rij + 1 end ws1.format_column(0..1,20,f1) ws1.format_column(2,5,f1) ws1.format_column(3..4,10,f1) ws1.format_column(5..6,15,f1) wb.close redirect_to :action=>"list_times" end
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BAY103-F175A6286B5666C98A50C0E99870>