### Navigation

- index
- modules
- toc
- jmb.core 0.8.6 documentation »

# Class XlsFile

class `jmb.core.utils.data_import.``XlsFile`(filename=None, file_contents=None, auto=False, sheet_index=0, opts=None, model=None)

  Parameters: | filename – the cvs file to open auto_fields – (boolean) se True, i nomi delle colonne saranno desunti dalla prima riga sheet_index – indice del foglio da usare (default: 0)

  `get_cell_value`(cell)

    Return the best guess for the correct value

  `get_rows`(sheet_index=0, sheet=None)

    Parameters: | sheet_index – the index of the sheet to read sheet – a possible sheet object as returned by sheet_by_index

  `get_sheet_as_list`(sheet_name=None, all_sheets=True)

    get named sheet or all sheets

  `get_tuples_from_row`(Row, row)

    Parameters: | Row – typename row – iterable

  `xldate2date`(cell)

    Returna un datetime.date dal valore della cella

  `xls2csv`()

    Really poor version of csv file

# Class CsvFile

class `jmb.core.utils.data_import.``CsvFile`(filename, auto=False, delimiter=';', opts=None, model=None)

  Parameters: | filename – the cvs file to open auto_fields – (boolean) se True, i nomi delle colonne saranno desunti dalla prima riga delimiter – delimitatore di campi (default `,`)

  `get_tuples_from_row`(Row, row)

    Parameters: | Row – typename row – iterable

# Class Sheet

class `jmb.core.utils.data_import.``Sheet`(model, opts)

  Abstract sheet

  `clean_field_name`(value)

    Clean each column heading to make it a suitable field_name. By default strip empty spaces, non ascii chars, parenthesis :param value: the column header

  `do`(row, kw, j)

    implement here your import

    - Parameters: | row – a namedtuple. Names are the names in the original columns kw – a dict suitable to feed `defaults` keyword attribute of `get_or_create` if fields_map is provided:
          def do(self, row, kw):
              Contact.objects.get_or_create(cod=row.cod, defaults=kw)
    j – integer 1-based counting read rows

  `field_list` = None

    a list of field names. Optional. When present it will be used to name each column instead of looking at the column header. Field name here is the row attribute (eg: row.first_name)

  `fields_map` = None

    a dict mapping field names to column headers, as an example, if field_name has {‘first_name’ : ‘Nome’} it means that `read()` will set:

        kw['first_name'] = row.Nome

  `get_fk_as_dict`(model, value='id', key='name')

    Return a dict of all values of a (possible) fk as dict

    Parameters: | model – the django db model value – the field to use as value of the dict (default `id`) Note: will be lowered key – the field to use as key of the dict (defaykt `name`)

  `handle_exception`(e, row, kw, j)

    Handle exception of the execution of `do()`

  `nullable_field_list` = None

    Fields listed in this list will be set None if empty specifically needed to prevent unique problems

  `read`(limit=0, start=0)

    Loop on all rows of a sheet

    Parameters: | start – start reading at line nr. `start` limit – limit number of rows to read to `limit`

  `setup`()

    Setup env possibly used in self.do

### Navigation

- index
- modules
- toc
- jmb.core 0.8.6 documentation »