Tramway::Export
Plugin for tramway-admin gem. Provides exporting collections to Excel files.
Installation & Usage
1. Add this line to your application's Gemfile:
gem 'tramway-admin'
gem 'tramway-export'
2. And then execute:
$ bundle
3. Add exportable models to tramway initializer
config/initializers/tramway.rb
Tramway::Export.set_exportable_models YourModel, project: :your_project_name
4. Create decorator that describes, how your model should be exported. You need to create exactly decorator name app/decorators/#{your_model_name}_xls_decorator.rb
If you have constant list of columns just use columns
method this way
app/decorators/your_model_xls_decorator.rb
class YourModelXlsDecorator < Tramway::Export::Xls::ApplicationDecorator
class << self
def columns
%i[column1 column2 column3] # here array of strings or symbols with columns names. It'll be used as headers in Excel file
end
def filename
`your_file_name.xls`
end
end
def column1
# getting value
end
def column2
# getting value
end
def column3
# getting value
end
end
If you don't have constant list of columns, use flexible_columns
this way
Just imagine: our model contains method values
and we want to have columns according to values
keys. You shouldn't create methods for every column. Just use Proc
. It's provided by gem xls_exporter
. You can read more about here.
app/decorators/your_model_xls_decorator.rb
class YourModelXlsDecorator < Tramway::Export::Xls::ApplicationDecorator
def flexible_columns
object.values.keys.map do |key|
{ key.to_sym => -> { object.values.dig(key) } }
end
end
end
5. Restart your server and visit index page of models in your admin panel
User instructions
English coming soon
Contributing
Contribution directions go here.
License
The gem is available as open source under the terms of the MIT License.