-
Notifications
You must be signed in to change notification settings - Fork 8
rxls views for Rails 3
License
asanghi/excel_rails
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
excel_rails ================= A Rails plugin to generate xls documents by using rxls templates. Based on Defv's railsxls plugin (http://github.com/DefV/railsxls) without the Java part. Also inspired heavily from prawn_rails gem (http://github.com/Volundr/prawn-rails). The gem has a new cool feature which lets you pick a hand-crafted excel file as a template in your view. Pass the path to your excel template using the :template_path option and instead of creating a blank spreadsheet for you to fill, your excel file will be parsed and yielded for you to fill in the blank. Thanks to Stepan Filatov @ https://github.com/sfilatov Installation ============ Note that this gem works only with Rails 3 Put the following line in your Gemfile gem 'excel_rails' Run 'bundle install' Name your views as action.xls.rxls (See below for usage) Make a request to your application with .xls extension to respond to excel. Dependencies ============ ruby-ole spreadsheet iconv Example ======= Example spreadsheet usage as found here: http://github.com/jacobat/ruby-spreadsheet -- in the view "index.xls.rxls" excel_document(:filename => "all_lines.xls") do |workbook| sheet = workbook.create_worksheet sheet.name = "What's in a name" sheet.row(0).concat %w{Name Country Acknowlegement} sheet[1,0] = 'Japan' row = sheet.row(1) row.push 'Creator of Ruby' row.unshift 'Yukihiro Matsumoto' sheet.row(2).replace [ 'Daniel J. Berger', 'U.S.A.', 'Author of original code for Spreadsheet::Excel' ] sheet.row(3).push 'Charles Lowe', 'Author of the ruby-ole Library' sheet.row(3).insert 1, 'Unknown' sheet.update_row 4, 'Hannes Wyss', 'Switzerland', 'Author' sheet.row(0).height = 18 format = Spreadsheet::Format.new :color => :blue, :weight => :bold, :size => 18 sheet.row(0).default_format = format bold = Spreadsheet::Format.new :weight => :bold 4.times do |x| sheet.row(x + 1).set_format(0, bold) end end In the above file excel_document yields a new Spreadsheet:Workbook object to the block. If you provide a :filename option to the excel_document method, a filename will be provided to the downloaded file. If your browser supports it you can inline the excel document as well. If you provide :template_path - path to existed xls file, workbook will be loaded from the file. excel_document(:filename => "report.xls", :template_path => "/tmp/report_template.xls") do |workbook| sheet = workbook.worksheet 0 ... # any staff form previous example end If you provide a :renderer option to the excel_document method, you can use your customized Spreadsheet::Workbook to create a new excel file. Your view "index.xls.rxls" file could look like this: excel_document(:filename => "foobar.xls", :renderer => Spreadsheet::CustomWorkbook) do |workbook| workbook.new_worksheet("#{t_model(Product)}") end And the renderer class ("lib/spreadsheet"): module Spreadsheet class CustomWorkbook < Spreadsheet::Workbook attr_accessor :sheet def new_worksheet @sheet = workbook.create_worksheet @sheet.name = "What's in a name" end end end -- in the controller def index @lines = Line.find(:all) respond_to do |format| format.html # index.html.erb format.xml { render :xml => @lines } format.xls end end Copyright (c) 2010 Aditya Sanghi, released under the MIT license
About
rxls views for Rails 3
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published