Coverage for src\genesis\parsers\excel_reader.py: 100%
12 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-26 14:20 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-26 14:20 +0800
1from __future__ import annotations
3from pathlib import Path
4from typing import Any
6from openpyxl import load_workbook
7from openpyxl.worksheet.worksheet import Worksheet
10def open_workbook(path: str | Path):
11 """普通模式打开 .xlsx(保留公式/样式/批注),.xls 报错。"""
12 path = Path(path)
13 if path.suffix.lower() != ".xlsx":
14 raise ValueError(f"不支持的 Excel 格式: {path.suffix}")
15 return load_workbook(path)
18def sheet_matrix(ws: Worksheet) -> list[list[Any]]:
19 """整表矩形值(含 None),保留到 max_column。"""
20 return [[cell.value for cell in row] for row in ws.iter_rows()]