Skip to content

Tracking: 9 senoff fork-of-fork PRs awaiting review (priority-ordered) #61

@senoff

Description

@senoff

Hi @protobi-pieter — opening this as a single tracking issue so triaging the open senoff PRs is one click instead of nine. Context: I maintain xlsx-for-ai (npm, ~100+ downloads/day), which depends on @protobi/exceljs. The 9 PRs below are upstream contributions back to your fork — fixes I needed downstream that seemed worth contributing here rather than carrying patches. No urgency; this issue is just to consolidate the notification surface. If any of these aren't a fit (different design preference, scope mismatch), close + I'll carry the patch downstream — no offense taken either way.

Priority order (highest → lowest impact for typical users)

Bug fixes

  1. Fix StreamBuf parser hang on non-xdr:wsDr drawing root (#56) #58 — Fix StreamBuf parser hang on non-xdr:wsDr drawing root (DrawingXform parser hangs on workbook drawings with non-xdr:wsDr root element #56) — parser hang on certain valid OOXML; reproducible.
  2. Fix #2966: convert formula result to Date when numFmt is date-like #55 — Fix [BUG] Invalid Date object returned for formula result formatted as date exceljs/exceljs#2966: convert formula result to Date when numFmt is date-like — long-standing upstream issue; round-trip data type was wrong.
  3. Fix #2943: preserve falsy formula results (0, false, empty string) in copy #52 — Fix Misshandling of value 0 (zero) in copy operation in FormulaValue exceljs/exceljs#2943: preserve falsy formula results (0, false, empty string) in copy — subtle data loss on copy ops.
  4. Fix #45: defensive handling of drawings without anchors #54 — Fix [BUG] Cannot read properties of undefined (reading 'anchors') when reading XLSX files with certain drawings #45: defensive handling of drawings without anchors — crash → defensive skip.
  5. Fix #3028: make getWorksheet case-insensitive to match addWorksheet #51 — Fix [BUG] getWorksheet(name) is case-sensitive while addWorksheet(name) enforces case-insensitive uniqueness exceljs/exceljs#3028: make getWorksheet case-insensitive to match addWorksheet — API consistency.
  6. Fix silent drop of named LAMBDA / non-range defined names on round-trip #59 — Fix silent drop of named LAMBDA / non-range defined names on round-trip — lost workbook metadata.
  7. Fix #42: extend pivot cache preservation to eliminate Excel repair warning #53 — Fix [BUG] Pivot cache triggers Excel repair #42: extend pivot cache preservation to eliminate Excel repair warning — completes the pivot work shipped in protobi.9.

Lint / dev-experience

  1. Fix prettier↔eslint config drift on comma-dangle functions #57 — Fix prettier↔eslint config drift on comma-dangle functions — cosmetic but unblocks contributors fighting the formatter.

Dependency hygiene (gift PR — consider after the above)

  1. chore(deps): bump uuid 8.3.0 → 14.0.0 to clear audit notice #60 — chore(deps): bump uuid 8.3.0 → 14.0.0 to clear audit notice — clears the only npm audit notice downstream consumers inherit. Note: I'd suggest 9.x rather than 14.x if you'd prefer a smaller jump; happy to amend.

Notes for triage

  • Each PR has tests covering the regression it fixes.
  • All branch off master cleanly as of opening; will rebase if any conflict after partial merges.
  • Happy to squash any subset into a single PR if that reduces review overhead — say the word.
  • Happy to split any PR further if the diff is too coarse — same.
  • If you want me to add a CHANGELOG / release-note entry per PR, point me at the convention you prefer.

Thanks for keeping the fork alive — the pivot/chart preservation work in protobi.9 is exactly why downstream consumers (myself included) chose @protobi/exceljs over the upstream package.

@senoff

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions