Skip to content

v2.6.1: COM Crash Fix + Null-Safety Audit

Choose a tag to compare

@Dry1ceD7 Dry1ceD7 released this 20 Mar 11:33
· 162 commits to main since this release

What's New in v2.6.1 πŸ›‘οΈ COM Crash Fix & Null-Safety Audit

πŸ”₯ Critical Fix: Unable to set the Calculation property Crash

  • The v2.5.9 Silent Mode optimization (excel.Calculation = xlCalculationManual) crashes on certain Excel installations
  • Fix: Each Silent Mode flag (ScreenUpdating, Calculation, EnableEvents) is now wrapped in individual try/except blocks
  • If one flag fails, the others still apply and Excel still launches successfully
  • A warning is logged so users can see which flags their Excel version doesn't support

πŸ›‘οΈ Global Null-Safety Audit

  • xlrd pre-scan path: str(c.value).strip() now uses defensive str(c.value).strip() if c.value is not None else ""
  • Prevents None cells from becoming the literal string "None" (which could false-match column headers)
  • All cell-read paths across com_engine.py and engine.py audited and confirmed null-safe

πŸ“Š Audit Results

Module Path Status
com_engine.py header scan (L466) str(v).strip() if v is not None else "" βœ… Already safe
com_engine.py currency read (L531) str(raw).strip().upper() if raw else "" βœ… Already safe
com_engine.py date parser Guards against None via _parse_cell_date() βœ… Already safe
engine.py xlrd pre-scan (L396) Was str(c.value).strip() πŸ”§ Fixed
engine.py openpyxl scan (L435) str(c).strip() if c is not None else "" βœ… Already safe
prescan.py header scan (L131) str(c).strip() if c is not None else "" βœ… Already safe