Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Export to excel file
Ruby
Branch: master
Pull request Compare This branch is 25 commits behind liangwenke:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
.gitignore
CHANGELOG
Gemfile
Gemfile.lock
MIT-LICENSE
README.rdoc
Rakefile
VERSION
init.rb
to_xls-rails.gemspec

README.rdoc

to_xls plugin

This simple plugin gives you the ability to call to_xls to a collection of activerecords. The builder options are the same as to_json / to_xml, except for the :include.

Usage

add below to RAILS_ROOT/config/initializers/mime_types.rb
Mime::Type.register_alias "text/excel", :xls

@posts = Post.all

#
#  default are export header and all fileds
#

@posts.to_xls
@posts.to_xls(:only => [:title, :body])
@posts.to_xls(:except => [:id])
@posts.to_xls(:header => false)

# Will prepend above header
# | Col 0, Row 0 | Col 1, Row 0 |
# | Col 0, Row 1 |              |
@posts.to_xls(:prepend => [["Col 0, Row 0", "Col 1, Row 0"], ["Col 0, Row 1"]])

# Translation of a column-value
@posts.to_xls{|column, value, row_index| column==:salutation ? t(value) + " at #{row_index}" : value}

Example

class PostsController < ApplicationController
  def index
    @posts = Post.all

    respond_to do |format|
      format.xls { send_data(@posts.to_xls) }
#      format.xls {
#	  filename = "posts-#{Time.now.strftime("%Y%m%d%H%M%S")}.xls"
#       send_data(@posts.to_xls, :type => "application/excel; charset=utf-8; header=present", :filename => filename)
      }
    end
  end
end

Works on Rails 3:

class PostsController < ApplicationController
  def index
    # add this to config/initializers/mime_types.rb
    Mime::Type.register "application/vnd.ms-excel", :xls

    @posts = Post.all

    respond_to do |format|
      format.xls {
        send_data @posts.to_xls
        return # prevet Rails to seek for index.xls.erb
      }
    end
  end
end

Dependencies

gem install spreadsheet

Install

with gem
gem install to_xls-rails

with bundler
gem 'to_xls-rails'
bundle install

with git
git clone http://github.com/liangwenke/to_xls-rails.git

Note

Copyright © 2010 liangwenke.com@gmail.com, released under the MIT license

Something went wrong with that request. Please try again.