fix: use context manager in _extract_xlsx to prevent resource leak

This commit is contained in:
彭星杰
2026-04-21 22:01:17 +08:00
committed by Xubin Ren
parent e15705b471
commit a00beebd06
+1 -2
View File
@@ -133,7 +133,7 @@ def _extract_docx(path: Path) -> str:
def _extract_xlsx(path: Path) -> str: def _extract_xlsx(path: Path) -> str:
"""Extract text from XLSX using openpyxl.""" """Extract text from XLSX using openpyxl."""
try: try:
wb = load_workbook(path, read_only=True, data_only=True) with load_workbook(path, read_only=True, data_only=True) as wb:
sheets: list[str] = [] sheets: list[str] = []
for sheet_name in wb.sheetnames: for sheet_name in wb.sheetnames:
ws = wb[sheet_name] ws = wb[sheet_name]
@@ -144,7 +144,6 @@ def _extract_xlsx(path: Path) -> str:
rows.append(row_text) rows.append(row_text)
if rows: if rows:
sheets.append(f"--- Sheet: {sheet_name} ---\n" + "\n".join(rows)) sheets.append(f"--- Sheet: {sheet_name} ---\n" + "\n".join(rows))
wb.close()
return _truncate("\n\n".join(sheets), _MAX_TEXT_LENGTH) return _truncate("\n\n".join(sheets), _MAX_TEXT_LENGTH)
except Exception as e: except Exception as e:
logger.error("Failed to extract XLSX {}: {}", path, e) logger.error("Failed to extract XLSX {}: {}", path, e)