From c6440f414b2b62c423162b936f0454acd0fa885d Mon Sep 17 00:00:00 2001 From: SoClose <33631880+SoClosee@users.noreply.github.com> Date: Fri, 6 Mar 2026 03:34:40 +0100 Subject: [PATCH] fix: replace openpyxl with pandas.ExcelWriter for faster Excel export --- freework_scraper/export/exporter.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/freework_scraper/export/exporter.py b/freework_scraper/export/exporter.py index 38a6cf9..2fcdb37 100644 --- a/freework_scraper/export/exporter.py +++ b/freework_scraper/export/exporter.py @@ -186,7 +186,7 @@ def _prepare_dataframe(jobs: list[FreeWorkJob]) -> pd.DataFrame: def _export_excel(df: pd.DataFrame, path: Path, search_url: str = "") -> None: """Write a professionally formatted Excel file.""" - with pd.ExcelWriter(path, engine="openpyxl") as writer: + with pd.ExcelWriter(path, engine="xlsxwriter") as writer: df.to_excel(writer, index=False, sheet_name="FreeWork Jobs") ws = writer.sheets["FreeWork Jobs"] @@ -213,13 +213,6 @@ def _export_excel(df: pd.DataFrame, path: Path, search_url: str = "") -> None: width = _COL_WIDTHS.get(key, 15) ws.column_dimensions[get_column_letter(col_idx)].width = width - # --- Precompute column indices --- - title_col_idx = COLUMN_KEYS.index("title") + 1 - salary_col_idx = COLUMN_KEYS.index("salary") + 1 - remote_col_idx = COLUMN_KEYS.index("remote") + 1 - url_col_idx = COLUMN_KEYS.index("job_url") + 1 - status_col_idx = COLUMN_KEYS.index("status") + 1 - # --- Data rows --- for row_idx in range(2, num_rows + 1): is_alt_row = (row_idx - 2) % 2 == 1