"""使用 pandas+xlrd 库解析 XLS 文件""" from typing import Optional, Tuple def parse(file_path: str) -> Tuple[Optional[str], Optional[str]]: """使用 pandas+xlrd 库解析 XLS 文件""" try: import pandas as pd from tabulate import tabulate except ImportError as e: if "pandas" in str(e): missing_lib = "pandas" elif "xlrd" in str(e): missing_lib = "xlrd" else: missing_lib = "tabulate" return None, f"{missing_lib} 库未安装" try: sheets = pd.read_excel(file_path, sheet_name=None, engine="xlrd") markdown_parts = [] for sheet_name, df in sheets.items(): if len(df) == 0: markdown_parts.append(f"## {sheet_name}\n\n*工作表为空*") continue table_md = tabulate( df, headers="keys", tablefmt="pipe", showindex=True, missingval="" ) markdown_parts.append(f"## {sheet_name}\n\n{table_md}") if not markdown_parts: return None, "Excel 文件为空" markdown_content = "# Excel数据转换结果\n\n" + "\n\n".join(markdown_parts) return markdown_content, None except Exception as e: return None, f"pandas 解析失败: {str(e)}"