tweaks
This commit is contained in:
@@ -29,15 +29,16 @@ def get_reports(base_dir: Path):
|
|||||||
def find_in_range(rng: xw.Range, query: str) -> xw.Range | None:
|
def find_in_range(rng: xw.Range, query: str) -> xw.Range | None:
|
||||||
for cell in rng:
|
for cell in rng:
|
||||||
match cell.value:
|
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 cell
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def find_total_row(table_start: xw.Range) -> int:
|
def find_total_row(table_start: xw.Range) -> int:
|
||||||
desc_col = find_in_range(table_start.expand('right'), "Desc")
|
desc_col = find_in_range(table_start.expand('right'), "Desc")
|
||||||
col = desc_col.get_address(column_absolute=False)[0]
|
col_char = desc_col.get_address(column_absolute=False)[0]
|
||||||
return find_in_range(table_start.sheet.range(f'{col}:{col}'), 'total').row
|
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:
|
def get_total_cost(sheet: xw.Sheet) -> float:
|
||||||
|
|||||||
Reference in New Issue
Block a user