Module: Xls

Defined in:
lib/xls/file.rb,
lib/xls/file/version.rb

Defined Under Namespace

Modules: File Classes: Error

Class Method Summary collapse

Class Method Details

.formatted_csv_data(row) ⇒ Object



45
46
47
# File 'lib/xls/file.rb', line 45

def self.formatted_csv_data(row)
  row.collect { |k, v| v }
end

.formatted_excel_data(row) ⇒ Object



24
25
26
# File 'lib/xls/file.rb', line 24

def self.formatted_excel_data(row)
  row.collect{|k, v| [v]}.flatten!
end

.generate_csv(data, headers) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/xls/file.rb', line 27

def self.generate_csv(data, headers)
  filename = "csv-file-#{Date.today.strftime('%dth %b %Y')}.csv"
  path = "tmp/#{filename}"

  CSV.open(path, "w", write_headers: true, headers: headers) do |csv|
    unless data.is_a? Array
      data = data.as_json
    end

    data.each do |row|
      formatted_row = formatted_csv_data(row)
      csv << formatted_row
    end
  end

  return path
end

.generate_xls(data, headers) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/xls/file.rb', line 7

def self.generate_xls(data, headers)
  package = Axlsx::Package.new
  work_sheet = package.workbook.add_worksheet(name: 'work_book')
  work_sheet.add_row headers
  unless data.is_a? Array
    data = data.as_json
  end
  data.each do |row|
    formatted_row = formatted_excel_data(row)
    work_sheet.add_row formatted_row
  end
  filename = "xls-file-#{Date.today.strftime("%dth %b %Y")}"
  path = "tmp/#{filename}"
  package.use_shared_strings = true
  package.serialize(path)
  return path
end

.testObject



48
49
50
# File 'lib/xls/file.rb', line 48

def self.test
  puts "Cheers!! xls-file installed successfully"
end