Source code for csvsmith.tools.excel2csv
from __future__ import annotations
import csv
from pathlib import Path
from ..utils.io import _open_worksheet, write_worksheet_to_csv
def _resolve_csv_path(excel_path: Path, csv_path: str | Path | None) -> Path:
"""Return the output CSV path, defaulting to the Excel file's stem."""
return Path(csv_path) if csv_path else excel_path.with_suffix(".csv")
[docs]
def excel_to_csv(
excel_path: str | Path,
csv_path: str | Path | None = None,
*,
sheet_name: str | None = None,
) -> Path:
"""Convert one Excel worksheet into a CSV file."""
excel_path = Path(excel_path)
csv_path = _resolve_csv_path(excel_path, csv_path)
with _open_worksheet(excel_path, sheet_name=sheet_name) as worksheet:
write_worksheet_to_csv(worksheet, csv_path)
return csv_path