Module: Workbook::Readers::CsvReader

Included in:
Book
Defined in:
lib/workbook/readers/csv_reader.rb

Instance Method Summary collapse

Instance Method Details

#csv_libObject



13
14
15
# File 'lib/workbook/readers/csv_reader.rb', line 13

def csv_lib
  return CSV
end

#load_csv(text, options = {}) ⇒ Object



8
9
10
11
# File 'lib/workbook/readers/csv_reader.rb', line 8

def load_csv text, options={}
  csv = text
  parse_csv csv, options
end

#parse_csv(csv_raw, options = {}) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/workbook/readers/csv_reader.rb', line 17

def parse_csv csv_raw, options={}
  optimistic_date_converter = Workbook::Cell.new.string_optimistic_date_converter
  options = {
    converters: [optimistic_date_converter, :all]
  }.merge(options)

  csv = nil

  begin
    csv = CSV.parse(csv_raw, options)
  rescue CSV::MalformedCSVError
    csv_excel = CSV.parse(csv_raw,options.merge({:col_sep=>';'}))
    csv = csv_excel if csv_excel[0].count > 1
  end

  if csv==nil or csv[0].count == 1
    csv_excel = CSV.parse(csv_raw,options.merge({:col_sep=>';'}))
    csv = csv_excel if csv_excel[0].count > 1
  end

  self[0] = Workbook::Sheet.new(csv, self) unless sheet.has_contents?
end