Acts as xlsx: Office Open XML Spreadsheet Generation plugin for active record
IRC: irc.freenode.net / #axlsx
Git: http://github.com/randym/acts_as_xlsx
Author: Randy Morgan
Copyright: 2011
License: MIT License
Latest Version: 1.0.3
Ruby Version: 1.8.7 - 1.9.3
Release Date: December 6th 2011
Synopsis
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.
Feature List
**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.
Installing
To install, use the following command:
$ gem install acts_as_xlsx
Usage
Examples
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
http://www.therailsway.com/2009/2/22/file-downloads-done-right
for nginx
http://andrewtimberlake.com/blog/how-to-protect-downloads-but-still-have-nginx-serve-the-files
#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
def xlsx
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:
[http://rubygems.org/gems/axlsx] (https://rubygems.org/gems/axlsx)
Documentation
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
Specs
This gem has 100% coverage using Test::Unit
Changelog
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.
Copyright
Acts_as_xlsx © 2011 by Randy Morgan. Acts_as_xlsx is licensed under the MIT license. Please see the LICENSE document for more information.