diff --git a/import2ledger/importers/_csv.py b/import2ledger/importers/_csv.py index 325dcf5e0d97a42a4f1633463d61982c16cc94fd..3e5955b01e2e50e2e4c6700f7c43fd7e6839812b 100644 --- a/import2ledger/importers/_csv.py +++ b/import2ledger/importers/_csv.py @@ -43,9 +43,17 @@ class CSVImporterBase: Reader = csv.reader DictReader = csv.DictReader + @classmethod + def _row_rindex(cls, row, default=None): + """Return the index of the last cell in the row that has a value.""" + for offset, value in enumerate(reversed(row), 1): + if value: + return len(row) - offset + return default + @classmethod def _read_header_row(cls, row): - return {} if len(row) < cls._HEADER_MAX_LEN else None + return {} if cls._row_rindex(row, -1) + 1 < cls._HEADER_MAX_LEN else None @classmethod def _read_header(cls, input_file):