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

1from __future__ import annotations 

2 

3from pathlib import Path 

4from typing import Any 

5 

6from openpyxl import load_workbook 

7from openpyxl.worksheet.worksheet import Worksheet 

8 

9 

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) 

16 

17 

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()]