class CmAdmin::Models::Export
def create_workbook(cm_model, records, _class_name, file_path)
def create_workbook(cm_model, records, _class_name, file_path) flattened_records = records.map { |record| CmAdmin::Utils.flatten_hash(record) } # columns = flattened_records.map{|x| x.keys}.flatten.uniq.sort columns = exportable_columns(cm_model).select { |column| flattened_records.first.keys.include?(column.field_name.to_s) } size_arr = [] columns.size.times { size_arr << 22 } xl = Axlsx::Package.new xl.workbook.add_worksheet do |sheet| sheet.add_row columns&.map(&:header), b: true flattened_records.each do |record| sheet.add_row(columns.map { |column| record[column.field_name.to_s] }) end sheet.column_widths(*size_arr) end xl.serialize(file_path) end