Based on grape-jbuilder and axlsx-rails
Add this line to your application's Gemfile:
gem 'grape-axlsx'
And then execute:
$ bundle
Or install it yourself as:
$ gem install grape-axlsx
use Rack::Config do |env|
env['api.tilt.root'] = '/path/to/view/root/directory'
end
class API < Grape::API
content_type :xlsx, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
format :xlsx
formatter :xlsx, Grape::Formatter::Axlsx
end
resources :users do
get axlsx: 'users/user.xlsx.axlsx' do
@users = User.all
end
end
# or you can omit .axlsx extension
...
get axlsx: 'users/user.xlsx' do
...
# NOTE: xlsx_package is predefined instance of Axlsx::Package
wb = xlsx_package.workbook
wb.add_worksheet(name: "Users list") do |sheet|
sheet.add_row ["id", "First name", "Last name", "Middle name"]
@users.each do |user|
sheet.add_row [user.id, user.first_name, user.last_name, user.middle_name]
end
end
- Fork it ( https://github.com/lfidnl/grape-axlsx/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request