Acts as xlsx: Office Open XML Spreadsheet Generation plugin for active record
IRC: irc.freenode.net / #axlsx
Author: Randy Morgan
License: MIT License
Latest Version: 1.0.3
Ruby Version: 1.8.7 - 1.9.3
Release Date: December 6th 2011
Acts_as_xlsx is an active record plugin for Axlsx. It makes generating excel spreadsheets from any subclass of ActiveRecord::Base as simple as a couple of lines of code.
**1. Mixes into active record base to provide to_xlsx
**2. Can work at the end of any series of finder methods.
**3. Can accept any set of find options
**4. Automates localization of column heading with i18n support
**5. Lets you specify columns and methods chains you want to call to populate your table in one go.
**6. Gives you access to the axlsx package so you can add styles, charts and pictures to satisfy those flashy sales guys.
**7. Plays nicely with both ruby 1.8.7 + rails 2.3 as well as ruby 1.9.3 + rails 3
**8. Automatically registers xlsx Mime type for use in respond_to web-service support.
To install, use the following command:
$ gem install acts_as_xlsx
Also see the writeups here: http://axlsx.blogspot.com/
A trivial rails example. In a production environment you will want to you stuff like x_sendfile and Tempfile
#Add the gem to your Gemfile and bundle install gem 'acts_as_xlsx' # app/models/post.rb class Post < ActiveRecord::Base acts_as_xlsx end # app/controllers/posts_controller.rb class PostsController < ApplicationController # GET posts/xlsx def xlsx p = Post.to_xlsx p.serialize('public/downloads/posts.xlsx') send_file 'public/downloads/posts.xlsx', :type=>"application/xlsx" end end # dont forget to add posts/xslx to your routes!
In addition to dumping the entire table, it is also possible to specify the columns and method chains to execute in genrating your report.
# GET posts/xslx
p = Post.to_xlsx :columns => [:name, :title, :ranking, :'comments.last.content', :'comments.last.author.name'] p.serialize('public/downloads/posts.xlsx') send_file 'public/downloads/posts.xlsx', :type=>"application/xlsx" end
If your application uses i18n, you can specify the prefix for column labels as well
# GET posts/xslx def xlsx p = Post.to_xlsx :i18n => 'activerecord.attributes' p.serialize('public/downloads/posts.xlsx') send_file 'public/downloads/posts.xlsx', :type=>"application/xlsx" end
For examples on how to use axlsx for custom styles, charts, images and more see:
This gem is 100% documented with YARD, an exceptional documentation library. To see documentation for this, and all the gems installed on your system use:
gem install yard yard server -g
This gem has 100% coverage using Test::Unit
December.6.11: 1.0.3 release
- Added Mime type definition for rails to support respond_to |format| style handling in controllers.
December.3.11: 1.0.2 release Added support for chained method columns like :'model.association.attribute'
October.30.11: 1.0.1 release
- Patch for inclusion error
October.30.11: 1.0.0 release
- First release
October.30.11: 1.0.0a release
- First pre release
Please see the CHANGELOG document for past release information.