SpreadsheetExporter

gem 'spreadsheet_exporter'

Usage

Objects that are exported must respond to as_csv or as_json and return a hash representing column names and values.

CSV or XLSX

Output can be .csv or .xlsx. Choose by using SpreadsheetExporter::CSV or SpreadsheetExporter::XLSX modules. Note that .csv output is actually tab delimited by default so that Excel can open files properly without needing to use its import function. If you need to output that is actually comma-delimited, pass :col_sep => ',' as an option when exporting

Array of ActiveRecord Objects

  SpreadsheetExporter::CSV.from_objects(array_of_objects, options)

  # Humanize header names using klass.human_attribute_name
  SpreadsheetExporter::CSV.from_objects(array_of_objects, :humanize_headers_class => User)

2D Array

  SpreadsheetExporter::CSV.from_spreadsheet([["First Name", "Last Name"], ["Bob", "Hoskins"], ["Roger", "Rabbit"]])