class Squib::Import::XlsxImporter
Public Instance Methods
import_to_dataframe(import, &block)
click to toggle source
# File lib/squib/import/xlsx_importer.rb, line 7 def import_to_dataframe(import, &block) s = Roo::Excelx.new(import.file) s.default_sheet = s.sheets[import.sheet] data = Squib::DataFrame.new s.first_column.upto(s.last_column) do |col| header = s.cell(s.first_row, col).to_s header = header.strip if import.strip? data[header] = [] (s.first_row + 1).upto(s.last_row) do |row| cell = s.cell(row, col) # Roo hack for avoiding unnecessary .0's on whole integers (https://github.com/roo-rb/roo/issues/139) cell = s.excelx_value(row, col) if s.excelx_type(row, col) == [:numeric_or_formula, 'General'] cell = cell.strip if cell.respond_to?(:strip) && import.strip? cell = block.yield(header, cell) unless block.nil? data[header] << cell end# row end# col explode_quantities(data, import.explode) end