module SpreadsheetExporter::XLSX

Public Class Methods

from_objects(objects, options = {}) click to toggle source
# File lib/spreadsheet_exporter/xlsx.rb, line 6
def self.from_objects(objects, options = {})
  spreadsheet = Spreadsheet.from_objects(objects, options)
  from_spreadsheet(spreadsheet)
end
from_spreadsheet(spreadsheet, temp_file_path = 'tmp/items.xlsx') click to toggle source
# File lib/spreadsheet_exporter/xlsx.rb, line 11
def self.from_spreadsheet(spreadsheet, temp_file_path = 'tmp/items.xlsx')
  # Create a new Excel workbook
  workbook = WriteXLSX.new(temp_file_path)

  # Add a worksheet
  worksheet = workbook.add_worksheet

  # Add and define a format
  headerFormat = workbook.add_format # Add a format
  headerFormat.set_bold

  # Write header row
  spreadsheet.first.each_with_index do |column_name, col|
    worksheet.write(0, col, column_name, headerFormat)
  end

  spreadsheet[1..-1].each_with_index do |values, row|
    values.each_with_index do |value, col|
      worksheet.write(row + 1, col, value)
    end
  end

  # Output the file contents and delete it
  workbook.close
  file = File.open(temp_file_path)
  output = file.read
  file.close
  File.delete(temp_file_path)

  return output
end