35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
# excel_utils.py
|
||
import pandas as pd
|
||
from typing import Dict, List, Tuple
|
||
|
||
def get_sheets_and_headers(
|
||
file_path: str,
|
||
header: int = 0,
|
||
skiprows: int = 0,
|
||
**kwargs
|
||
) -> Dict[str, List[str]]:
|
||
"""
|
||
读取 Excel 文件,返回每个 sheet 的名称及其表头(列名)。
|
||
|
||
参数:
|
||
file_path (str): Excel 文件路径(支持 .xlsx / .xls)
|
||
header (int): 表头所在行索引(默认 0,即第一行)
|
||
skiprows (int): 跳过的行数(在表头之前)
|
||
**kwargs: 透传给 pd.read_excel 的其他参数(如 engine 等)
|
||
|
||
返回:
|
||
Dict[str, List[str]]: {sheet_name: [col1, col2, ...]}
|
||
"""
|
||
# 使用 nrows=0 只读取表头,不加载数据,性能高
|
||
all_sheets = pd.read_excel(
|
||
file_path,
|
||
sheet_name=None, # 读取所有 sheet
|
||
header=header,
|
||
skiprows=skiprows,
|
||
nrows=0, # ⚡ 关键:只读表头
|
||
**kwargs
|
||
)
|
||
return {name: df.columns.tolist() for name, df in all_sheets.items()}
|
||
|
||
|