class Spyro::ActionViewExtension::CollectionForHelper::Output::XLSX

Public Instance Methods

render() click to toggle source
# File lib/spyro/collections/outputs/xlsx.rb, line 20
def render
  return "" if @unicollection.rows.empty?

  filename = @unicollection.meta[:filename] || @unicollection.meta[:model_class] || "file"
  xlsx_package = Axlsx::Package.new({})
  wb = xlsx_package.workbook


  wb.add_worksheet(name: filename) do |sheet|
    render_header sheet
    render_body sheet
  end

  xlsx_package.to_stream.string
end
render_body(sheet) click to toggle source
# File lib/spyro/collections/outputs/xlsx.rb, line 14
def render_body sheet
  @unicollection.rows.each do |row|
    sheet.add_row row[:data].map(&:value)
  end
end
render_header(sheet) click to toggle source
# File lib/spyro/collections/outputs/xlsx.rb, line 9
def render_header sheet
  return unless @unicollection.meta[:data]
  sheet.add_row @unicollection.meta[:data]
end