diff --git a/mileage_rate.py b/mileage_rate.py index 39d134e..2a1426b 100644 --- a/mileage_rate.py +++ b/mileage_rate.py @@ -29,15 +29,16 @@ def get_reports(base_dir: Path): def find_in_range(rng: xw.Range, query: str) -> xw.Range | None: for cell in rng: match cell.value: - case str(cell_value) if cell_value.lower().startswith(query.lower()): + case str(cell_value) if re.match(query, cell_value, re.IGNORECASE): return cell return None def find_total_row(table_start: xw.Range) -> int: desc_col = find_in_range(table_start.expand('right'), "Desc") - col = desc_col.get_address(column_absolute=False)[0] - return find_in_range(table_start.sheet.range(f'{col}:{col}'), 'total').row + col_char = desc_col.get_address(column_absolute=False)[0] + col_rng = table_start.sheet.range(f'{col_char}:{col_char}') + return find_in_range(col_rng, 'total').row def get_total_cost(sheet: xw.Sheet) -> float: