Skip to content

fix(pptx): preserve merged cells during table structure edits - #253

Merged
ChristopherVR merged 1 commit into
ChristopherVR:mainfrom
yunfeizhu:fix/pptx-preserve-table-merges
Nov 6, 2026
Merged

ChristopherVR merged 1 commit into
ChristopherVR:mainfrom
yunfeizhu:fix/pptx-preserve-table-merges

Conversation

@yunfeizhu

Copy link
Copy Markdown
Contributor

What does this change?

Fixes #251.

Use the editor's structure operations in manage_table_structure. Insertions and deletions keep merge spans and continuation flags consistent. If a merge survives deletion of its first row or column, move its rich title to the new anchor. The tool retains its column-width allocation and inserted text inputs. The rectangular spans follow the DrawingML table merge rules.

Testing

  • Registered-tool save and reload regressions cover row and column inserts, deleting anchors or continuations, rich text and independent cells.
  • Affected core tests, builds, lint, format, typechecks and all PPTX package checks passed.

The shared UI token check reports office-ui-status-bar: 1px, -1px on both the branch and the unchanged 6c75692a6 base. The PPTX package steps that stopped after this assertion were run separately and passed.

Fork CI · Reproduction ZIP

Use the editor's table structure operations in the automation tool.
Rebase intersected merge rectangles and retain the rich text of a
removed anchor on the first surviving cell. Keep the existing width
allocation and text inputs for the tool.
@github-actions github-actions Bot added tests Test-only change area: pptx PowerPoint engine size: L Fewer than 1,000 changed lines labels Nov 6, 2026
@pkg-pr-new

pkg-pr-new Bot commented Nov 6, 2026

Copy link
Copy Markdown
  • ooxml-office-playground

    npm i https://pkg.pr.new/ChristopherVR/ooxml/ooxml-office-preview@7a3fbe3
    
    npm i https://pkg.pr.new/ChristopherVR/ooxml/ooxml-core@7a3fbe3
    
    npm i https://pkg.pr.new/ChristopherVR/ooxml/ooxml-ui@7a3fbe3
    

commit: 7a3fbe3

@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Bundle size

2 of 67 entry points changed size against main (6c75692):

Entry point Before (gzip) After (gzip) Change
ooxml-core/pptx/automation 1493.5 kB 1494.5 kB +1.0 kB (+0.1%)
ooxml-core/pptx/cli 1229.8 kB 1229.8 kB +0.0 kB (+0.0%)
All entry points
Entry point Before (gzip) After (gzip) Change
ooxml-core 529.6 kB 529.6 kB 0
ooxml-core/automation 1195.2 kB 1195.2 kB 0
ooxml-core/automation/node 2.3 kB 2.3 kB 0
ooxml-core/chart 176.5 kB 176.5 kB 0
ooxml-core/chart/region-map 9.0 kB 9.0 kB 0
ooxml-core/collab 15.8 kB 15.8 kB 0
ooxml-core/color 4.8 kB 4.8 kB 0
ooxml-core/crypto 28.1 kB 28.1 kB 0
ooxml-core/diagram 228.5 kB 228.5 kB 0
ooxml-core/diagram/builtin 346.0 kB 346.0 kB 0
ooxml-core/digest 12.4 kB 12.4 kB 0
ooxml-core/docx 448.3 kB 448.3 kB 0
ooxml-core/docx/embedded 313.8 kB 313.8 kB 0
ooxml-core/docx/layout 213.2 kB 213.2 kB 0
ooxml-core/docx/load 401.2 kB 401.2 kB 0
ooxml-core/docx/ui 311.6 kB 311.6 kB 0
ooxml-core/drawingml 41.6 kB 41.6 kB 0
ooxml-core/embedding 4.6 kB 4.6 kB 0
ooxml-core/embedding/onedrive 8.6 kB 8.6 kB 0
ooxml-core/geometry 104.4 kB 104.4 kB 0
ooxml-core/i18n 5.6 kB 5.6 kB 0
ooxml-core/math 19.8 kB 19.8 kB 0
ooxml-core/opc 23.5 kB 23.5 kB 0
ooxml-core/pptx 1343.4 kB 1343.4 kB 0
ooxml-core/pptx/automation 1493.5 kB 1494.5 kB +1.0 kB (+0.1%)
ooxml-core/pptx/automation/schemas 128.5 kB 128.5 kB 0
ooxml-core/pptx/cli 1229.8 kB 1229.8 kB +0.0 kB (+0.0%)
ooxml-core/pptx/converter 532.4 kB 532.4 kB 0
ooxml-core/pptx/node 0.6 kB 0.6 kB 0
ooxml-core/pptx/signature-node 14.8 kB 14.8 kB 0
ooxml-core/pptx/smartart-layouts 353.3 kB 353.3 kB 0
ooxml-core/pptx/ui 5.3 kB 5.3 kB 0
ooxml-core/ribbon 0.4 kB 0.4 kB 0
ooxml-core/teams 458.5 kB 458.5 kB 0
ooxml-core/text 20.0 kB 20.0 kB 0
ooxml-core/units 0.7 kB 0.7 kB 0
ooxml-core/visio 601.9 kB 601.9 kB 0
ooxml-core/visio/collab 24.3 kB 24.3 kB 0
ooxml-core/visio/ui 616.9 kB 616.9 kB 0
ooxml-core/xlsx 694.2 kB 694.2 kB 0
ooxml-core/xlsx/collab 434.1 kB 434.1 kB 0
ooxml-core/xlsx/load 469.9 kB 469.9 kB 0
ooxml-core/xlsx/ui 815.2 kB 815.2 kB 0
ooxml-core/xml 8.9 kB 8.9 kB 0
ooxml-ui 309.1 kB 309.1 kB 0
ooxml-ui/bindings 3.2 kB 3.2 kB 0
ooxml-ui/bindings/react 1.0 kB 1.0 kB 0
ooxml-ui/bindings/solid 1.0 kB 1.0 kB 0
ooxml-ui/bindings/vue 2.3 kB 2.3 kB 0
ooxml-ui/chart-format-locales 14.5 kB 14.5 kB 0
ooxml-ui/controls 149.6 kB 149.6 kB 0
ooxml-ui/docx 473.3 kB 473.3 kB 0
ooxml-ui/icons 2.5 kB 2.5 kB 0
ooxml-ui/pptx 1090.0 kB 1090.0 kB 0
ooxml-ui/pptx/ai 26.3 kB 26.3 kB 0
ooxml-ui/pptx/dom 1100.0 kB 1100.0 kB 0
ooxml-ui/pptx/i18n 72.8 kB 72.8 kB 0
ooxml-ui/pptx/loader 1.1 kB 1.1 kB 0
ooxml-ui/pptx/onedrive 0.1 kB 0.1 kB 0
ooxml-ui/pptx/theme 8.7 kB 8.7 kB 0
ooxml-ui/presence 7.8 kB 7.8 kB 0
ooxml-ui/smartart 29.0 kB 29.0 kB 0
ooxml-ui/suite 3.0 kB 3.0 kB 0
ooxml-ui/teams 280.2 kB 280.2 kB 0
ooxml-ui/theme 6.3 kB 6.3 kB 0
ooxml-ui/visio 453.6 kB 453.6 kB 0
ooxml-ui/xlsx 524.9 kB 524.9 kB 0

Each entry point with the files it imports statically, gzipped, before minification. Measured by scripts/bundle-size.mjs.

@ChristopherVR
ChristopherVR merged commit 0158dda into ChristopherVR:main Nov 6, 2026
53 of 63 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: pptx PowerPoint engine size: L Fewer than 1,000 changed lines tests Test-only change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pptx: table structure edits break merged cells

2 participants