#62 by GitHub stars
iOfficeAI/OfficeCLI
OfficeCLI is the first and best Office suite purpose-built for AI agents to read, edit, and automate Word, Excel, and PowerPoint files. Free, open-source, single binary, no Office installation required.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
89905744ed6d → c56512c8c7b7
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 89905744ed6d
No earlier version was observed for comparison.
skills/morph-ppt/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
89905744ed6d → c56512c8c7b7
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 89905744ed6d
No earlier version was observed for comparison.
skills/morph-ppt-3d/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
89905744ed6d → c56512c8c7b7
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 89905744ed6d
No earlier version was observed for comparison.
skills/officecli/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
89905744ed6d → c56512c8c7b7
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 89905744ed6d
No earlier version was observed for comparison.
skills/officecli-academic-paper/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
89905744ed6d → c56512c8c7b7
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 89905744ed6d
No earlier version was observed for comparison.
skills/officecli-data-dashboard/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
89905744ed6d → c56512c8c7b7
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 89905744ed6d
No earlier version was observed for comparison.
skills/officecli-docx/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
89905744ed6d → c56512c8c7b7
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 89905744ed6d
No earlier version was observed for comparison.
skills/officecli-financial-model/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
89905744ed6d → c56512c8c7b7
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 89905744ed6d
No earlier version was observed for comparison.
skills/officecli-pitch-deck/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
89905744ed6d → c56512c8c7b7
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 89905744ed6d
No earlier version was observed for comparison.
skills/officecli-pptx/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
89905744ed6d → c56512c8c7b7
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 89905744ed6d
No earlier version was observed for comparison.
skills/officecli-word-form/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
89905744ed6d → c56512c8c7b7
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 89905744ed6d
No earlier version was observed for comparison.
skills/officecli-xlsx/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
89905744ed6d → c56512c8c7b7
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 89905744ed6d
No earlier version was observed for comparison.
Heat
7.0- Star growth, last 7 daysAhead of 79% of tracked repositories
- Star growth, last 24 hoursAhead of 69% of tracked repositories
- Rank movement, last 7 daysAhead of 80% of tracked repositories
- Commits, last 30 daysAhead of 94% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- officecli
/ - morph-ppt
skills/morph-ppt - morph-ppt-3d
skills/morph-ppt-3d - officecli
skills/officecli - officecli-academic-paper
skills/officecli-academic-paper - officecli-data-dashboard
skills/officecli-data-dashboard - officecli-docx
skills/officecli-docx - officecli-financial-model
skills/officecli-financial-model - officecli-pitch-deck
skills/officecli-pitch-deck - officecli-pptx
skills/officecli-pptx - officecli-word-form
skills/officecli-word-form - officecli-xlsx
skills/officecli-xlsx
How it works
officecli
When your agent uses it
Create, analyze, proofread, and modify Office documents (.docx, .xlsx, .pptx) using the officecli CLI tool. Use when the user wants to create, inspect, check formatting, find issues, add charts, or modify Office documents.
What it loads into context
Frontmatter
60 tokensAlways available to the agent
SKILL.md
6,978 tokensWhen the skill is activated
Reference documents
303,488 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Install
- Strategy
- Help System (IMPORTANT)
- Performance: Resident Mode
- Quick Start
- L1: Create, Read & Inspect
- Watch & Interactive Selection
- L2: DOM Operations
- L3: Raw XML
- Common Pitfalls
- Specialized Skills
- Notes
Scripts executed separately
.oss-scanner/Dockerfilebuild.shdev-install.shexamples/excel/cell-formatting.pyexamples/excel/cell-formatting.shexamples/excel/charts.pyexamples/excel/charts.shexamples/excel/charts/charts-advanced.pyexamples/excel/charts/charts-advanced.shexamples/excel/charts/charts-area.pyexamples/excel/charts/charts-area.shexamples/excel/charts/charts-bar.pyexamples/excel/charts/charts-bar.shexamples/excel/charts/charts-basic.pyexamples/excel/charts/charts-basic.shexamples/excel/charts/charts-boxwhisker.pyexamples/excel/charts/charts-boxwhisker.shexamples/excel/charts/charts-bubble.pyexamples/excel/charts/charts-bubble.shexamples/excel/charts/charts-column.pyexamples/excel/charts/charts-column.shexamples/excel/charts/charts-combo.pyexamples/excel/charts/charts-combo.shexamples/excel/charts/charts-extended.pyexamples/excel/charts/charts-extended.shexamples/excel/charts/charts-histogram.pyexamples/excel/charts/charts-histogram.shexamples/excel/charts/charts-line.pyexamples/excel/charts/charts-line.shexamples/excel/charts/charts-pie.pyexamples/excel/charts/charts-pie.shexamples/excel/charts/charts-radar.pyexamples/excel/charts/charts-radar.shexamples/excel/charts/charts-scatter.pyexamples/excel/charts/charts-scatter.shexamples/excel/charts/charts-stock.pyexamples/excel/charts/charts-stock.shexamples/excel/charts/charts-waterfall.pyexamples/excel/charts/charts-waterfall.shexamples/excel/conditional-formatting.pyexamples/excel/conditional-formatting.shexamples/excel/data-validation.pyexamples/excel/data-validation.shexamples/excel/pivot-tables.pyexamples/excel/pivot-tables.shexamples/excel/shapes.pyexamples/excel/shapes.shexamples/excel/sheet-settings.pyexamples/excel/sheet-settings.shexamples/excel/slicers.pyexamples/excel/slicers.shexamples/excel/sparklines.pyexamples/excel/sparklines.shexamples/excel/workbook-settings.pyexamples/excel/workbook-settings.shexamples/ppt/3d-model.pyexamples/ppt/3d-model.shexamples/ppt/animations.pyexamples/ppt/animations.shexamples/ppt/charts/charts-3d.pyexamples/ppt/charts/charts-3d.shexamples/ppt/charts/charts-advanced.pyexamples/ppt/charts/charts-advanced.shexamples/ppt/charts/charts-area.pyexamples/ppt/charts/charts-area.shexamples/ppt/charts/charts-bar.pyexamples/ppt/charts/charts-bar.shexamples/ppt/charts/charts-bubble.pyexamples/ppt/charts/charts-bubble.shexamples/ppt/charts/charts-column.pyexamples/ppt/charts/charts-column.shexamples/ppt/charts/charts-combo.pyexamples/ppt/charts/charts-combo.shexamples/ppt/charts/charts-doughnut.pyexamples/ppt/charts/charts-doughnut.shexamples/ppt/charts/charts-line.pyexamples/ppt/charts/charts-line.shexamples/ppt/charts/charts-pie.pyexamples/ppt/charts/charts-pie.shexamples/ppt/charts/charts-radar.pyexamples/ppt/charts/charts-radar.shexamples/ppt/charts/charts-scatter.pyexamples/ppt/charts/charts-scatter.shexamples/ppt/charts/charts-stock.pyexamples/ppt/charts/charts-stock.shexamples/ppt/charts/charts-waterfall.pyexamples/ppt/charts/charts-waterfall.shexamples/ppt/diagram.pyexamples/ppt/diagram.shexamples/ppt/ole/ole-embed.pyexamples/ppt/ole/ole-embed.shexamples/ppt/pictures/pictures-basic.pyexamples/ppt/pictures/pictures-basic.shexamples/ppt/presentation-settings.pyexamples/ppt/presentation-settings.shexamples/ppt/presentation.pyexamples/ppt/presentation.shexamples/ppt/shapes/shapes-basic.pyexamples/ppt/shapes/shapes-basic.shexamples/ppt/shapes/shapes-connectors.pyexamples/ppt/shapes/shapes-connectors.shexamples/ppt/shapes/shapes-effects.pyexamples/ppt/shapes/shapes-effects.shexamples/ppt/shapes/shapes-typography.pyexamples/ppt/shapes/shapes-typography.shexamples/ppt/tables/tables-basic.pyexamples/ppt/tables/tables-basic.shexamples/ppt/tables/tables-borders.pyexamples/ppt/tables/tables-borders.shexamples/ppt/tables/tables-financial.pyexamples/ppt/tables/tables-financial.shexamples/ppt/tables/tables-merged.pyexamples/ppt/tables/tables-merged.shexamples/ppt/tables/tables-nested.pyexamples/ppt/tables/tables-nested.shexamples/ppt/tables/tables-rows-cols.pyexamples/ppt/tables/tables-rows-cols.shexamples/ppt/tables/tables-styled.pyexamples/ppt/tables/tables-styled.shexamples/ppt/templates/styles/brand--aura-coffee-dark/build.shexamples/ppt/templates/styles/brand--aura-coffee/build.shexamples/ppt/templates/styles/future--2050-vision/build.shexamples/ppt/templates/styles/lifestyle--cat-philosophy/build.shexamples/ppt/templates/styles/lifestyle--cat-secret-life/build.shexamples/ppt/templates/styles/lifestyle--feline-report/build_ppt.shexamples/ppt/templates/styles/product--geminicli-timetravel/build.shexamples/ppt/templates/styles/productivity--attention-budget/build.shexamples/ppt/templates/styles/science--alien-guide/build.shexamples/ppt/templates/styles/science--space-exploration/build.shexamples/ppt/templates/styles/science--time-travel/build.shexamples/ppt/templates/styles/tech--wildlife-company/build.shexamples/ppt/textboxes/textboxes-advanced.pyexamples/ppt/textboxes/textboxes-advanced.shexamples/ppt/textboxes/textboxes-basic.pyexamples/ppt/textboxes/textboxes-basic.shexamples/ppt/transitions/transitions-bands.pyexamples/ppt/transitions/transitions-bands.shexamples/ppt/transitions/transitions-basic.pyexamples/ppt/transitions/transitions-basic.shexamples/ppt/transitions/transitions-directional.pyexamples/ppt/transitions/transitions-directional.shexamples/ppt/transitions/transitions-dynamic.pyexamples/ppt/transitions/transitions-dynamic.shexamples/ppt/transitions/transitions-modern.pyexamples/ppt/transitions/transitions-modern.shexamples/ppt/transitions/transitions-morph.pyexamples/ppt/transitions/transitions-morph.shexamples/ppt/transitions/transitions-random.pyexamples/ppt/transitions/transitions-random.shexamples/ppt/transitions/transitions-shapes.pyexamples/ppt/transitions/transitions-shapes.shexamples/ppt/transitions/transitions-timing.pyexamples/ppt/transitions/transitions-timing.shexamples/ppt/video.pyexamples/ppt/video.shexamples/word/charts.pyexamples/word/charts.shexamples/word/content-controls.pyexamples/word/content-controls.shexamples/word/diagram.pyexamples/word/diagram.shexamples/word/document-formatting.pyexamples/word/document-formatting.shexamples/word/fields.pyexamples/word/fields.shexamples/word/formulas.pyexamples/word/formulas.shexamples/word/numbering.pyexamples/word/numbering.shexamples/word/paragraph-formatting.pyexamples/word/paragraph-formatting.shexamples/word/pictures.pyexamples/word/pictures.shexamples/word/revisions.pyexamples/word/revisions.shexamples/word/run-formatting.pyexamples/word/run-formatting.shexamples/word/sections.pyexamples/word/sections.shexamples/word/tables.pyexamples/word/tables.shexamples/word/textbox.pyexamples/word/textbox.shinstall.ps1install.shnpm/install.jsnpm/lib/install-binary.jsnpm/officecli.jsnpm/package.jsonsdk/node/demo.jssdk/node/index.d.tssdk/node/index.jssdk/node/package.jsonsdk/node/smoke.jssdk/python/demo.pysdk/python/officecli.pysdk/python/smoke.pysrc/officecli/Resources/preview.jssrc/officecli/Resources/watch-overlay.jssrc/officecli/Resources/watch-sse-core.js
Files
.github/workflows/build.ymlasset9,488 bytes.github/workflows/publish-npm.ymlasset3,591 bytes.github/workflows/publish-pypi.ymlasset2,249 bytes.github/workflows/publish-sdk.ymlasset3,344 bytes.github/workflows/sdk-smoke.ymlasset1,308 bytes.github/workflows/skill-parity.ymlasset1,960 bytes.oss-scanner/Dockerfileruns1,216 bytes.oss-scanner/threat_model.mddoc4,601 bytesCONTRIBUTING.mddoc4,631 bytesCONTRIBUTING.zh.mddoc4,468 bytesLICENSEasset11,375 bytesNOTICEasset455 bytesREADME.mddoc41,030 bytesREADME_ja.mddoc41,021 bytesREADME_ko.mddoc37,208 bytesREADME_zh.mddoc35,645 bytesSECURITY.mddoc879 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesTHIRD-PARTY-NOTICES.txtdoc2,179 bytesassets/blackhole.gifasset2,900,881 bytesassets/cat.gifasset338,830 bytesassets/designwhatmovesyou.gifasset602,032 bytesassets/efforless.gifasset611,284 bytesassets/first-ppt-aionui.gifasset576,932 bytesassets/hero-en.pngasset338,870 bytesassets/hero-zh.pngasset337,740 bytesassets/horizon.gifasset604,482 bytesassets/mars.gifasset248,277 bytesassets/moridian.gifasset396,168 bytesassets/move.gifasset670,441 bytesassets/ppt-process.webpasset6,849,860 bytesassets/saturn+sun.gifasset2,270,232 bytesassets/shiba.gifasset1,614,951 bytesassets/showcase/academic-paper.docxasset18,420 bytesassets/showcase/academic-paper.pngasset70,896 bytesassets/showcase/annual-report.docxasset10,367 bytesassets/showcase/annual-report.pngasset12,125 bytesassets/showcase/budget-tracker.pngasset24,716 bytesassets/showcase/budget-tracker.xlsxasset19,794 bytesassets/showcase/employee-handbook.docxasset17,656 bytesassets/showcase/employee-handbook.pngasset10,086 bytesassets/showcase/excel1.gifasset2,010,541 bytesassets/showcase/excel2.gifasset1,483,527 bytesassets/showcase/excel3.gifasset1,291,197 bytesassets/showcase/fitness-planner.xlsxasset21,517 bytesassets/showcase/gradebook.pngasset30,784 bytesassets/showcase/gradebook.xlsxasset18,699 bytesassets/showcase/product-catalog.xlsxasset7,239 bytesassets/showcase/project-proposal.docxasset7,986 bytesassets/showcase/project-proposal.pngasset38,372 bytesassets/showcase/restaurant-menu.docxasset12,116 bytesassets/showcase/sales-dashboard.pngasset12,152 bytesassets/showcase/sales-dashboard.xlsxasset8,377 bytesassets/showcase/word1.gifasset2,755,335 bytesassets/showcase/word2.gifasset1,881,296 bytesassets/showcase/word3.gifasset2,417,650 bytesbuild.shruns3,959 bytesbuild/officecli.entitlementsasset247 bytesdev-install.shruns2,689 bytesexamples/Alien_Guide.pptxasset14,813 bytesexamples/Cat-Secret-Life.pptxasset24,321 bytesexamples/README.mddoc16,811 bytesexamples/budget_review_v2.pptxasset24,536 bytesexamples/excel/cell-formatting.mddoc8,062 bytesexamples/excel/cell-formatting.pyruns14,423 bytesexamples/excel/cell-formatting.shruns12,910 bytesexamples/excel/cell-formatting.xlsxasset9,467 bytesexamples/excel/charts.mddoc2,504 bytesexamples/excel/charts.pyruns17,277 bytesexamples/excel/charts.shruns18,418 bytesexamples/excel/charts.xlsxasset21,874 bytesexamples/excel/charts/charts-advanced.mddoc5,575 bytesexamples/excel/charts/charts-advanced.pyruns12,247 bytesexamples/excel/charts/charts-advanced.shruns10,774 bytesexamples/excel/charts/charts-advanced.xlsxasset21,166 bytesexamples/excel/charts/charts-area.mddoc8,218 bytesexamples/excel/charts/charts-area.pyruns19,389 bytesexamples/excel/charts/charts-area.shruns17,151 bytesexamples/excel/charts/charts-area.xlsxasset34,999 bytesexamples/excel/charts/charts-bar.mddoc11,885 bytesexamples/excel/charts/charts-bar.pyruns21,723 bytesexamples/excel/charts/charts-bar.shruns21,135 bytesexamples/excel/charts/charts-bar.xlsxasset46,300 bytesexamples/excel/charts/charts-basic.mddoc9,430 bytesexamples/excel/charts/charts-basic.pyruns25,274 bytesexamples/excel/charts/charts-basic.shruns21,227 bytesexamples/excel/charts/charts-basic.xlsxasset50,610 bytesexamples/excel/charts/charts-boxwhisker.mddoc7,246 bytesexamples/excel/charts/charts-boxwhisker.pyruns10,571 bytesexamples/excel/charts/charts-boxwhisker.shruns8,467 bytesexamples/excel/charts/charts-boxwhisker.xlsxasset32,785 bytesexamples/excel/charts/charts-bubble.mddoc6,298 bytesexamples/excel/charts/charts-bubble.pyruns13,212 bytesexamples/excel/charts/charts-bubble.shruns8,812 bytesexamples/excel/charts/charts-bubble.xlsxasset23,238 bytesexamples/excel/charts/charts-column.mddoc10,527 bytesexamples/excel/charts/charts-column.pyruns25,718 bytesexamples/excel/charts/charts-column.shruns22,450 bytesexamples/excel/charts/charts-column.xlsxasset48,649 bytesexamples/excel/charts/charts-combo.mddoc4,860 bytesexamples/excel/charts/charts-combo.pyruns13,899 bytesexamples/excel/charts/charts-combo.shruns11,619 bytesexamples/excel/charts/charts-combo.xlsxasset27,885 bytesexamples/excel/charts/charts-extended.mddoc15,744 bytesexamples/excel/charts/charts-extended.pyruns19,175 bytesexamples/excel/charts/charts-extended.shruns14,116 bytesexamples/excel/charts/charts-extended.xlsxasset58,995 bytesexamples/excel/charts/charts-histogram.mddoc13,549 bytesexamples/excel/charts/charts-histogram.pyruns29,545 bytesexamples/excel/charts/charts-histogram.shruns25,400 bytesexamples/excel/charts/charts-histogram.xlsxasset138,447 bytesexamples/excel/charts/charts-line.mddoc13,867 bytesexamples/excel/charts/charts-line.pyruns28,202 bytesexamples/excel/charts/charts-line.shruns29,025 bytesexamples/excel/charts/charts-line.xlsxasset56,038 bytesexamples/excel/charts/charts-pie.mddoc6,398 bytesexamples/excel/charts/charts-pie.pyruns12,132 bytesexamples/excel/charts/charts-pie.shruns8,659 bytesexamples/excel/charts/charts-pie.xlsxasset17,867 bytesexamples/excel/charts/charts-radar.mddoc5,876 bytesexamples/excel/charts/charts-radar.pyruns13,977 bytesexamples/excel/charts/charts-radar.shruns10,786 bytesexamples/excel/charts/charts-radar.xlsxasset26,681 bytesexamples/excel/charts/charts-scatter.mddoc7,768 bytesexamples/excel/charts/charts-scatter.pyruns21,073 bytesexamples/excel/charts/charts-scatter.shruns16,436 bytesexamples/excel/charts/charts-scatter.xlsxasset37,336 bytesexamples/excel/charts/charts-stock.mddoc3,827 bytesexamples/excel/charts/charts-stock.pyruns11,858 bytesexamples/excel/charts/charts-stock.shruns8,810 bytesexamples/excel/charts/charts-stock.xlsxasset21,946 bytesexamples/excel/charts/charts-waterfall.mddoc6,180 bytesexamples/excel/charts/charts-waterfall.pyruns12,510 bytesexamples/excel/charts/charts-waterfall.shruns11,288 bytesexamples/excel/charts/charts-waterfall.xlsxasset28,249 bytesexamples/excel/conditional-formatting.mddoc7,942 bytesexamples/excel/conditional-formatting.pyruns11,979 bytesexamples/excel/conditional-formatting.shruns6,382 bytesexamples/excel/conditional-formatting.xlsxasset9,144 bytesexamples/excel/data-validation.mddoc8,634 bytesexamples/excel/data-validation.pyruns11,467 bytesexamples/excel/data-validation.shruns9,124 bytesexamples/excel/data-validation.xlsxasset8,019 bytesexamples/excel/pivot-tables.mddoc12,536 bytesexamples/excel/pivot-tables.pyruns32,187 bytesexamples/excel/pivot-tables.shruns16,859 bytesexamples/excel/pivot-tables.xlsxasset64,325 bytesexamples/excel/shapes.mddoc7,158 bytesexamples/excel/shapes.pyruns10,969 bytesexamples/excel/shapes.shruns12,006 bytesexamples/excel/shapes.xlsxasset7,012 bytesexamples/excel/sheet-settings.mddoc6,112 bytesexamples/excel/sheet-settings.pyruns6,944 bytesexamples/excel/sheet-settings.shruns6,065 bytesexamples/excel/sheet-settings.xlsxasset7,382 bytesexamples/excel/slicers.mddoc5,427 bytesexamples/excel/slicers.pyruns7,815 bytesexamples/excel/slicers.shruns4,734 bytesexamples/excel/slicers.xlsxasset11,058 bytesexamples/excel/sparklines.mddoc5,789 bytesexamples/excel/sparklines.pyruns6,592 bytesexamples/excel/sparklines.shruns4,559 bytesexamples/excel/sparklines.xlsxasset5,505 bytesexamples/excel/workbook-settings.mddoc4,192 bytesexamples/excel/workbook-settings.pyruns5,187 bytesexamples/excel/workbook-settings.shruns3,460 bytesexamples/excel/workbook-settings.xlsxasset4,849 bytesexamples/ppt/3d-model.mddoc8,272 bytesexamples/ppt/3d-model.pptxasset34,371,188 bytesexamples/ppt/3d-model.pyruns9,700 bytesexamples/ppt/3d-model.shruns9,896 bytesexamples/ppt/animations.mddoc9,634 bytesexamples/ppt/animations.pptxasset22,844 bytesexamples/ppt/animations.pyruns13,502 bytesexamples/ppt/animations.shruns14,160 bytesexamples/ppt/charts/charts-3d.mddoc8,036 bytesexamples/ppt/charts/charts-3d.pptxasset48,121 bytesexamples/ppt/charts/charts-3d.pyruns8,550 bytesexamples/ppt/charts/charts-3d.shruns12,259 bytesexamples/ppt/charts/charts-advanced.mddoc13,992 bytesexamples/ppt/charts/charts-advanced.pptxasset45,522 bytesexamples/ppt/charts/charts-advanced.pyruns17,067 bytesexamples/ppt/charts/charts-advanced.shruns17,332 bytesexamples/ppt/charts/charts-area.mddoc11,831 bytesexamples/ppt/charts/charts-area.pptxasset48,813 bytesexamples/ppt/charts/charts-area.pyruns11,048 bytesexamples/ppt/charts/charts-area.shruns14,049 bytesexamples/ppt/charts/charts-bar.mddoc12,703 bytesexamples/ppt/charts/charts-bar.pptxasset49,203 bytesexamples/ppt/charts/charts-bar.pyruns11,763 bytesexamples/ppt/charts/charts-bar.shruns13,452 bytesexamples/ppt/charts/charts-bubble.mddoc8,665 bytesexamples/ppt/charts/charts-bubble.pptxasset48,028 bytesexamples/ppt/charts/charts-bubble.pyruns10,006 bytesexamples/ppt/charts/charts-bubble.shruns10,412 bytesexamples/ppt/charts/charts-column.mddoc16,170 bytesexamples/ppt/charts/charts-column.pptxasset49,602 bytesexamples/ppt/charts/charts-column.pyruns15,320 bytesexamples/ppt/charts/charts-column.shruns15,234 bytesexamples/ppt/charts/charts-combo.mddoc12,156 bytesexamples/ppt/charts/charts-combo.pptxasset50,769 bytesexamples/ppt/charts/charts-combo.pyruns12,219 bytesexamples/ppt/charts/charts-combo.shruns13,890 bytesexamples/ppt/charts/charts-doughnut.mddoc9,724 bytesexamples/ppt/charts/charts-doughnut.pptxasset40,310 bytesexamples/ppt/charts/charts-doughnut.pyruns11,027 bytesexamples/ppt/charts/charts-doughnut.shruns13,436 bytesexamples/ppt/charts/charts-line.mddoc11,794 bytesexamples/ppt/charts/charts-line.pptxasset48,776 bytesexamples/ppt/charts/charts-line.pyruns11,231 bytesexamples/ppt/charts/charts-line.shruns13,445 bytesexamples/ppt/charts/charts-pie.mddoc9,614 bytesexamples/ppt/charts/charts-pie.pptxasset39,808 bytesexamples/ppt/charts/charts-pie.pyruns9,717 bytesexamples/ppt/charts/charts-pie.shruns12,683 bytesexamples/ppt/charts/charts-radar.mddoc11,471 bytesexamples/ppt/charts/charts-radar.pptxasset49,202 bytesexamples/ppt/charts/charts-radar.pyruns11,884 bytesexamples/ppt/charts/charts-radar.shruns13,817 bytesexamples/ppt/charts/charts-scatter.mddoc12,126 bytesexamples/ppt/charts/charts-scatter.pptxasset52,204 bytesexamples/ppt/charts/charts-scatter.pyruns13,349 bytesexamples/ppt/charts/charts-scatter.shruns15,460 bytesexamples/ppt/charts/charts-stock.mddoc11,016 bytesexamples/ppt/charts/charts-stock.pptxasset50,623 bytesexamples/ppt/charts/charts-stock.pyruns10,288 bytesexamples/ppt/charts/charts-stock.shruns12,901 bytesexamples/ppt/charts/charts-waterfall.mddoc10,682 bytesexamples/ppt/charts/charts-waterfall.pptxasset50,207 bytesexamples/ppt/charts/charts-waterfall.pyruns10,048 bytesexamples/ppt/charts/charts-waterfall.shruns12,378 bytesexamples/ppt/diagram.mddoc7,876 bytesexamples/ppt/diagram.pptxasset948,285 bytesexamples/ppt/diagram.pyruns9,434 bytesexamples/ppt/diagram.shruns11,456 bytesexamples/ppt/models/sun.glbasset4,343,656 bytesexamples/ppt/ole/data.docxasset5,236 bytesexamples/ppt/ole/data.xlsxasset3,934 bytesexamples/ppt/ole/ole-embed.mddoc6,644 bytesexamples/ppt/ole/ole-embed.pptxasset32,270 bytesexamples/ppt/ole/ole-embed.pyruns8,214 bytesexamples/ppt/ole/ole-embed.shruns9,040 bytesexamples/ppt/ole/thumb-docx.pngasset2,682 bytesexamples/ppt/ole/thumb-xlsx.pngasset2,325 bytesexamples/ppt/pictures/pictures-basic.mddoc12,278 bytesexamples/ppt/pictures/pictures-basic.pptxasset400,508 bytesexamples/ppt/pictures/pictures-basic.pyruns15,452 bytesexamples/ppt/pictures/pictures-basic.shruns14,417 bytesexamples/ppt/pie.mmdasset117 bytesexamples/ppt/presentation-settings.mddoc4,540 bytesexamples/ppt/presentation-settings.pptxasset10,390 bytesexamples/ppt/presentation-settings.pyruns4,641 bytesexamples/ppt/presentation-settings.shruns3,036 bytesexamples/ppt/presentation.mddoc17,184 bytesexamples/ppt/presentation.pptxasset17,831 bytesexamples/ppt/presentation.pyruns31,770 bytesexamples/ppt/presentation.shruns31,279 bytesexamples/ppt/shapes/shapes-basic.mddoc15,985 bytesexamples/ppt/shapes/shapes-basic.pptxasset16,121 bytesexamples/ppt/shapes/shapes-basic.pyruns14,868 bytesexamples/ppt/shapes/shapes-basic.shruns14,315 bytesexamples/ppt/shapes/shapes-connectors.mddoc11,377 bytesexamples/ppt/shapes/shapes-connectors.pptxasset14,696 bytesexamples/ppt/shapes/shapes-connectors.pyruns12,254 bytesexamples/ppt/shapes/shapes-connectors.shruns12,779 bytesexamples/ppt/shapes/shapes-effects.mddoc12,585 bytesexamples/ppt/shapes/shapes-effects.pptxasset16,497 bytesexamples/ppt/shapes/shapes-effects.pyruns12,729 bytesexamples/ppt/shapes/shapes-effects.shruns14,014 bytesexamples/ppt/shapes/shapes-typography.mddoc15,395 bytesexamples/ppt/shapes/shapes-typography.pptxasset16,214 bytesexamples/ppt/shapes/shapes-typography.pyruns14,879 bytesexamples/ppt/shapes/shapes-typography.shruns15,938 bytesexamples/ppt/tables/tables-basic.mddoc10,730 bytesexamples/ppt/tables/tables-basic.pptxasset16,718 bytesexamples/ppt/tables/tables-basic.pyruns11,327 bytesexamples/ppt/tables/tables-basic.shruns11,179 bytesexamples/ppt/tables/tables-borders.mddoc8,721 bytesexamples/ppt/tables/tables-borders.pptxasset14,684 bytesexamples/ppt/tables/tables-borders.pyruns7,484 bytesexamples/ppt/tables/tables-borders.shruns6,161 bytesexamples/ppt/tables/tables-financial.mddoc8,508 bytesexamples/ppt/tables/tables-financial.pptxasset14,264 bytesexamples/ppt/tables/tables-financial.pyruns7,319 bytesexamples/ppt/tables/tables-financial.shruns6,408 bytesexamples/ppt/tables/tables-merged.mddoc8,915 bytesexamples/ppt/tables/tables-merged.pptxasset11,806 bytesexamples/ppt/tables/tables-merged.pyruns7,082 bytesexamples/ppt/tables/tables-merged.shruns6,287 bytesexamples/ppt/tables/tables-nested.mddoc6,743 bytesexamples/ppt/tables/tables-nested.pptxasset15,244 bytesexamples/ppt/tables/tables-nested.pyruns9,241 bytesexamples/ppt/tables/tables-nested.shruns10,776 bytesexamples/ppt/tables/tables-rows-cols.mddoc10,390 bytesexamples/ppt/tables/tables-rows-cols.pptxasset14,517 bytesexamples/ppt/tables/tables-rows-cols.pyruns12,034 bytesexamples/ppt/tables/tables-rows-cols.shruns11,399 bytesexamples/ppt/tables/tables-styled.mddoc6,807 bytesexamples/ppt/tables/tables-styled.pptxasset23,114 bytesexamples/ppt/tables/tables-styled.pyruns5,709 bytesexamples/ppt/tables/tables-styled.shruns4,741 bytesexamples/ppt/templates/README.mddoc4,490 bytesexamples/ppt/templates/styles/brand--aura-coffee-dark/AURA_COFFEE.pptxasset19,003 bytesexamples/ppt/templates/styles/brand--aura-coffee-dark/build.shruns8,443 bytesexamples/ppt/templates/styles/brand--aura-coffee/aura_coffee.pptxasset19,647 bytesexamples/ppt/templates/styles/brand--aura-coffee/build.shruns14,190 bytesexamples/ppt/templates/styles/future--2050-vision/build.shruns14,983 bytesexamples/ppt/templates/styles/future--2050-vision/未来已来_2050.pptxasset21,195 bytesexamples/ppt/templates/styles/lifestyle--cat-philosophy/build.shruns12,427 bytesexamples/ppt/templates/styles/lifestyle--cat-philosophy/cat_philosophy.pptxasset19,552 bytesexamples/ppt/templates/styles/lifestyle--cat-secret-life/Cat-Secret-Life.pptxasset24,321 bytesexamples/ppt/templates/styles/lifestyle--cat-secret-life/build.shruns17,555 bytesexamples/ppt/templates/styles/lifestyle--feline-report/Feline_Report.pptxasset11,878 bytesexamples/ppt/templates/styles/lifestyle--feline-report/build_ppt.shruns4,250 bytesexamples/ppt/templates/styles/product--aionui-promo/AionUI-推广.pptxasset19,289 bytesexamples/ppt/templates/styles/product--aionui-promo/outline.mddoc1,265 bytesexamples/ppt/templates/styles/product--geminicli-timetravel/GeminiCLI-TimeTravel.pptxasset22,005 bytesexamples/ppt/templates/styles/product--geminicli-timetravel/build.shruns15,187 bytesexamples/ppt/templates/styles/productivity--attention-budget/build.shruns33,578 bytesexamples/ppt/templates/styles/productivity--attention-budget/注意力预算-把手机时间变成创造时间.pptxasset36,292 bytesexamples/ppt/templates/styles/science--alien-guide/Alien_Guide.pptxasset14,813 bytesexamples/ppt/templates/styles/science--alien-guide/build.shruns8,896 bytesexamples/ppt/templates/styles/science--mars-settlement/Mars-Settlement-Guide.pptxasset18,626 bytesexamples/ppt/templates/styles/science--mars-settlement/build.jsonasset16,716 bytesexamples/ppt/templates/styles/science--space-exploration/build.shruns28,097 bytesexamples/ppt/templates/styles/science--space-exploration/太空探索历程.pptxasset22,120 bytesexamples/ppt/templates/styles/science--time-travel/Time_Travel.pptxasset20,086 bytesexamples/ppt/templates/styles/science--time-travel/build.shruns12,536 bytesexamples/ppt/templates/styles/tech--wildlife-company/build.shruns6,163 bytesexamples/ppt/templates/styles/tech--wildlife-company/野生动物科技公司.pptxasset21,955 bytesexamples/ppt/textboxes/textboxes-advanced.mddoc17,482 bytesexamples/ppt/textboxes/textboxes-advanced.pptxasset16,876 bytesexamples/ppt/textboxes/textboxes-advanced.pyruns16,128 bytesexamples/ppt/textboxes/textboxes-advanced.shruns18,522 bytesexamples/ppt/textboxes/textboxes-basic.mddoc10,278 bytesexamples/ppt/textboxes/textboxes-basic.pptxasset13,863 bytesexamples/ppt/textboxes/textboxes-basic.pyruns9,309 bytesexamples/ppt/textboxes/textboxes-basic.shruns9,658 bytesexamples/ppt/transitions/transitions-bands.mddoc5,084 bytesexamples/ppt/transitions/transitions-bands.pptxasset29,608 bytesexamples/ppt/transitions/transitions-bands.pyruns4,152 bytesexamples/ppt/transitions/transitions-bands.shruns2,883 bytesexamples/ppt/transitions/transitions-basic.mddoc5,517 bytesexamples/ppt/transitions/transitions-basic.pptxasset14,959 bytesexamples/ppt/transitions/transitions-basic.pyruns3,497 bytesexamples/ppt/transitions/transitions-basic.shruns2,176 bytesexamples/ppt/transitions/transitions-directional.mddoc4,551 bytesexamples/ppt/transitions/transitions-directional.pptxasset33,300 bytesexamples/ppt/transitions/transitions-directional.pyruns3,738 bytesexamples/ppt/transitions/transitions-directional.shruns2,383 bytesexamples/ppt/transitions/transitions-dynamic.mddoc4,969 bytesexamples/ppt/transitions/transitions-dynamic.pptxasset36,421 bytesexamples/ppt/transitions/transitions-dynamic.pyruns4,354 bytesexamples/ppt/transitions/transitions-dynamic.shruns2,776 bytesexamples/ppt/transitions/transitions-modern.mddoc5,029 bytesexamples/ppt/transitions/transitions-modern.pptxasset29,988 bytesexamples/ppt/transitions/transitions-modern.pyruns3,888 bytesexamples/ppt/transitions/transitions-modern.shruns2,261 bytesexamples/ppt/transitions/transitions-morph.mddoc6,262 bytesexamples/ppt/transitions/transitions-morph.pptxasset13,529 bytesexamples/ppt/transitions/transitions-morph.pyruns4,529 bytesexamples/ppt/transitions/transitions-morph.shruns3,909 bytesexamples/ppt/transitions/transitions-random.mddoc4,009 bytesexamples/ppt/transitions/transitions-random.pptxasset12,860 bytesexamples/ppt/transitions/transitions-random.pyruns3,092 bytesexamples/ppt/transitions/transitions-random.shruns1,800 bytesexamples/ppt/transitions/transitions-shapes.mddoc4,903 bytesexamples/ppt/transitions/transitions-shapes.pptxasset22,834 bytesexamples/ppt/transitions/transitions-shapes.pyruns3,568 bytesexamples/ppt/transitions/transitions-shapes.shruns2,119 bytesexamples/ppt/transitions/transitions-timing.mddoc5,379 bytesexamples/ppt/transitions/transitions-timing.pptxasset17,877 bytesexamples/ppt/transitions/transitions-timing.pyruns5,288 bytesexamples/ppt/transitions/transitions-timing.shruns3,516 bytesexamples/ppt/video.mddoc6,185 bytesexamples/ppt/video.pptxasset143,611 bytesexamples/ppt/video.pyruns8,617 bytesexamples/ppt/video.shruns4,915 bytesexamples/product_launch_morph.pptxasset15,388 bytesexamples/word/charts.docxasset26,224 bytesexamples/word/charts.mddoc10,301 bytesexamples/word/charts.pyruns13,702 bytesexamples/word/charts.shruns12,711 bytesexamples/word/content-controls.docxasset6,153 bytesexamples/word/content-controls.mddoc6,933 bytesexamples/word/content-controls.pyruns8,554 bytesexamples/word/content-controls.shruns6,015 bytesexamples/word/diagram.docxasset922,012 bytesexamples/word/diagram.mddoc6,042 bytesexamples/word/diagram.pyruns7,717 bytesexamples/word/diagram.shruns8,403 bytesexamples/word/document-formatting.docxasset5,855 bytesexamples/word/document-formatting.mddoc6,204 bytesexamples/word/document-formatting.pyruns8,207 bytesexamples/word/document-formatting.shruns4,449 bytesexamples/word/fields.docxasset6,933 bytesexamples/word/fields.mddoc8,742 bytesexamples/word/fields.pyruns10,414 bytesexamples/word/fields.shruns10,444 bytesexamples/word/formulas.docxasset13,896 bytesexamples/word/formulas.mddoc23,658 bytesexamples/word/formulas.pyruns18,276 bytesexamples/word/formulas.shruns22,912 bytesexamples/word/numbering.docxasset7,353 bytesexamples/word/numbering.mddoc11,913 bytesexamples/word/numbering.pyruns12,485 bytesexamples/word/numbering.shruns15,878 bytesexamples/word/paragraph-formatting.docxasset8,261 bytesexamples/word/paragraph-formatting.mddoc18,443 bytesexamples/word/paragraph-formatting.pyruns10,203 bytesexamples/word/paragraph-formatting.shruns10,713 bytesexamples/word/pictures-banner.pngasset2,111 bytesexamples/word/pictures-logo.pngasset3,131 bytesexamples/word/pictures.docxasset25,715 bytesexamples/word/pictures.mddoc8,123 bytesexamples/word/pictures.pyruns10,104 bytesexamples/word/pictures.shruns12,658 bytesexamples/word/pie.mmdasset117 bytesexamples/word/revisions.docxasset7,238 bytesexamples/word/revisions.mddoc12,733 bytesexamples/word/revisions.pyruns16,487 bytesexamples/word/revisions.shruns23,583 bytesexamples/word/run-formatting.docxasset7,351 bytesexamples/word/run-formatting.mddoc15,070 bytesexamples/word/run-formatting.pyruns8,518 bytesexamples/word/run-formatting.shruns9,313 bytesexamples/word/sections.docxasset9,133 bytesexamples/word/sections.mddoc7,378 bytesexamples/word/sections.pyruns14,895 bytesexamples/word/sections.shruns11,928 bytesexamples/word/tables.docxasset8,542 bytesexamples/word/tables.mddoc12,590 bytesexamples/word/tables.pptxasset12,366 bytesexamples/word/tables.pyruns17,053 bytesexamples/word/tables.shruns26,917 bytesexamples/word/tables.xlsxasset5,405 bytesexamples/word/textbox.docxasset8,618 bytesexamples/word/textbox.mddoc11,379 bytesexamples/word/textbox.pyruns19,195 bytesexamples/word/textbox.shruns20,702 bytesinstall.ps1runs8,646 bytesinstall.shruns10,148 bytesnpm/README.mddoc1,034 bytesnpm/install.jsruns919 bytesnpm/lib/install-binary.jsruns8,370 bytesnpm/officecli.jsruns1,284 bytesnpm/package.jsonruns1,093 bytesplugins/plugin-protocol.mddoc34,611 bytesschemas/README.mddoc1,476 bytesschemas/help/_schema.jsonasset9,884 bytesschemas/help/_shared/chart-axis.jsonasset4,995 bytesschemas/help/_shared/chart-axis.pptx-xlsx.jsonasset1,298 bytesschemas/help/_shared/chart-series.jsonasset8,017 bytesschemas/help/_shared/chart-series.pptx-xlsx.jsonasset692 bytesschemas/help/_shared/chart.docx-pptx.jsonasset1,041 bytesschemas/help/_shared/chart.docx-xlsx.jsonasset349 bytesschemas/help/_shared/chart.jsonasset41,037 bytesschemas/help/_shared/chart.pptx-xlsx.jsonasset1,348 bytesschemas/help/_shared/comment.docx-pptx.jsonasset783 bytesschemas/help/_shared/comment.jsonasset712 bytesschemas/help/_shared/equation.jsonasset568 bytesschemas/help/_shared/hyperlink.jsonasset104 bytesschemas/help/_shared/ole.docx-pptx.jsonasset670 bytesschemas/help/_shared/ole.jsonasset3,011 bytesschemas/help/_shared/ole.pptx-xlsx.jsonasset786 bytesschemas/help/_shared/paragraph.jsonasset1,706 bytesschemas/help/_shared/picture.docx-pptx.jsonasset345 bytesschemas/help/_shared/picture.docx-xlsx.jsonasset444 bytesschemas/help/_shared/picture.jsonasset2,244 bytesschemas/help/_shared/picture.pptx-xlsx.jsonasset2,197 bytesschemas/help/_shared/root-metadata.jsonasset7,631 bytesschemas/help/_shared/run.docx-pptx.jsonasset1,886 bytesschemas/help/_shared/run.docx-xlsx.jsonasset730 bytesschemas/help/_shared/run.jsonasset2,384 bytesschemas/help/_shared/shape.jsonasset8,154 bytesschemas/help/_shared/table-cell.jsonasset5,535 bytesschemas/help/_shared/table-row.jsonasset1,043 bytesschemas/help/_shared/table.docx-pptx.jsonasset5,976 bytesschemas/help/_shared/table.jsonasset861 bytesschemas/help/_shared/table.pptx-xlsx.jsonasset429 bytesschemas/help/docx/abstractNum.jsonasset9,849 bytesschemas/help/docx/body.jsonasset796 bytesschemas/help/docx/bookmark.jsonasset1,609 bytesschemas/help/docx/bookmarkEnd.jsonasset1,942 bytesschemas/help/docx/chart-axis.jsonasset849 bytesschemas/help/docx/chart-series.jsonasset710 bytesschemas/help/docx/chart.jsonasset1,229 bytesschemas/help/docx/comment.jsonasset3,662 bytesschemas/help/docx/diagram.jsonasset7,566 bytesschemas/help/docx/document.jsonasset20,407 bytesschemas/help/docx/endnote.jsonasset4,145 bytesschemas/help/docx/equation.jsonasset1,018 bytesschemas/help/docx/field.jsonasset7,227 bytesschemas/help/docx/fieldchar.jsonasset1,122 bytesschemas/help/docx/footer.jsonasset4,717 bytesschemas/help/docx/footnote.jsonasset4,315 bytesschemas/help/docx/formfield.jsonasset2,546 bytesschemas/help/docx/header.jsonasset5,018 bytesschemas/help/docx/hyperlink.jsonasset5,749 bytesschemas/help/docx/instrtext.jsonasset1,336 bytesschemas/help/docx/level.jsonasset6,101 bytesschemas/help/docx/markdown.jsonasset2,894 bytesschemas/help/docx/num.jsonasset4,813 bytesschemas/help/docx/numbering.jsonasset1,461 bytesschemas/help/docx/ole.jsonasset2,219 bytesschemas/help/docx/pagebreak.jsonasset1,536 bytesschemas/help/docx/paragraph.jsonasset49,559 bytesschemas/help/docx/permStart.jsonasset2,337 bytesschemas/help/docx/picture.jsonasset9,322 bytesschemas/help/docx/ptab.jsonasset1,794 bytesschemas/help/docx/raw.jsonasset1,712 bytesschemas/help/docx/revision.jsonasset13,735 bytesschemas/help/docx/run.jsonasset26,049 bytesschemas/help/docx/sdt.jsonasset7,455 bytesschemas/help/docx/section.jsonasset19,278 bytesschemas/help/docx/shape.jsonasset5,074 bytesschemas/help/docx/style.jsonasset28,742 bytesschemas/help/docx/styles.jsonasset742 bytesschemas/help/docx/tab.jsonasset2,707 bytesschemas/help/docx/table-cell.jsonasset13,862 bytesschemas/help/docx/table-column.jsonasset1,382 bytesschemas/help/docx/table-row.jsonasset4,707 bytesschemas/help/docx/table.jsonasset5,974 bytesschemas/help/docx/textbox.jsonasset6,816 bytesschemas/help/docx/toc.jsonasset1,624 bytesschemas/help/docx/watermark.jsonasset2,845 bytesschemas/help/pptx/animation.jsonasset9,504 bytesschemas/help/pptx/chart-axis.jsonasset944 bytesschemas/help/pptx/chart-series.jsonasset1,999 bytesschemas/help/pptx/chart.jsonasset4,931 bytesschemas/help/pptx/comment.jsonasset1,752 bytesschemas/help/pptx/connector.jsonasset11,483 bytesschemas/help/pptx/diagram.jsonasset7,585 bytesschemas/help/pptx/equation.jsonasset2,331 bytesschemas/help/pptx/group.jsonasset4,321 bytesschemas/help/pptx/hyperlink.jsonasset1,570 bytesschemas/help/pptx/linebreak.jsonasset834 bytesschemas/help/pptx/media.jsonasset3,661 bytesschemas/help/pptx/model3d.jsonasset2,307 bytesschemas/help/pptx/moderncomment.jsonasset3,134 bytesschemas/help/pptx/notes.jsonasset1,420 bytesschemas/help/pptx/ole.jsonasset1,052 bytesschemas/help/pptx/paragraph.jsonasset5,813 bytesschemas/help/pptx/picture.jsonasset11,503 bytesschemas/help/pptx/placeholder.jsonasset7,988 bytesschemas/help/pptx/presentation.jsonasset11,573 bytesschemas/help/pptx/raw.jsonasset1,590 bytesschemas/help/pptx/run.jsonasset8,044 bytesschemas/help/pptx/shape.jsonasset47,309 bytesschemas/help/pptx/slide.jsonasset8,071 bytesschemas/help/pptx/slidelayout.jsonasset4,230 bytesschemas/help/pptx/slidemaster.jsonasset4,745 bytesschemas/help/pptx/table-cell.jsonasset18,178 bytesschemas/help/pptx/table-column.jsonasset1,043 bytesschemas/help/pptx/table-row.jsonasset483 bytesschemas/help/pptx/table.jsonasset10,809 bytesschemas/help/pptx/textbox.jsonasset10,472 bytesschemas/help/pptx/theme.jsonasset6,064 bytesschemas/help/pptx/transition.jsonasset3,089 bytesschemas/help/pptx/zoom.jsonasset2,555 bytesschemas/help/xlsx/aboveaverage.jsonasset2,567 bytesschemas/help/xlsx/autofilter.jsonasset1,678 bytesschemas/help/xlsx/cell.jsonasset27,850 bytesschemas/help/xlsx/cellis.jsonasset2,835 bytesschemas/help/xlsx/cfextended.jsonasset2,643 bytesschemas/help/xlsx/chart-axis.jsonasset1,351 bytesschemas/help/xlsx/chart-series.jsonasset1,856 bytesschemas/help/xlsx/chart.jsonasset3,393 bytesschemas/help/xlsx/colbreak.jsonasset1,307 bytesschemas/help/xlsx/colorscale.jsonasset2,376 bytesschemas/help/xlsx/column.jsonasset3,820 bytesschemas/help/xlsx/comment.jsonasset842 bytesschemas/help/xlsx/conditionalformatting.jsonasset10,701 bytesschemas/help/xlsx/containstext.jsonasset2,134 bytesschemas/help/xlsx/databar.jsonasset3,614 bytesschemas/help/xlsx/dateoccurring.jsonasset2,336 bytesschemas/help/xlsx/detectedtable.jsonasset1,931 bytesschemas/help/xlsx/duplicatevalues.jsonasset1,904 bytesschemas/help/xlsx/formulacf.jsonasset3,087 bytesschemas/help/xlsx/hyperlink.jsonasset2,220 bytesschemas/help/xlsx/iconset.jsonasset1,952 bytesschemas/help/xlsx/namedrange.jsonasset2,153 bytesschemas/help/xlsx/ole.jsonasset1,100 bytesschemas/help/xlsx/pagebreak.jsonasset1,367 bytesschemas/help/xlsx/picture.jsonasset9,046 bytesschemas/help/xlsx/pivottable.jsonasset15,237 bytesschemas/help/xlsx/range.jsonasset2,814 bytesschemas/help/xlsx/raw.jsonasset2,047 bytesschemas/help/xlsx/row.jsonasset4,820 bytesschemas/help/xlsx/rowbreak.jsonasset1,308 bytesschemas/help/xlsx/run.jsonasset462 bytesschemas/help/xlsx/shape.jsonasset5,080 bytesschemas/help/xlsx/sheet.jsonasset12,985 bytesschemas/help/xlsx/slicer.jsonasset3,280 bytesschemas/help/xlsx/sort.jsonasset1,202 bytesschemas/help/xlsx/sparkline.jsonasset6,912 bytesschemas/help/xlsx/table.jsonasset6,045 bytesschemas/help/xlsx/topn.jsonasset2,664 bytesschemas/help/xlsx/uniquevalues.jsonasset1,892 bytesschemas/help/xlsx/validation.jsonasset4,870 bytesschemas/help/xlsx/workbook.jsonasset11,560 bytessdk/node/README.mddoc3,183 bytessdk/node/demo.jsruns1,271 bytessdk/node/index.d.tsruns2,675 bytessdk/node/index.jsruns28,396 bytessdk/node/package.jsonruns889 bytessdk/node/smoke.jsruns1,086 bytessdk/python/README.mddoc5,124 bytessdk/python/demo.pyruns3,880 bytessdk/python/officecli.pyruns32,807 bytessdk/python/pyproject.tomlasset1,522 bytessdk/python/smoke.pyruns859 bytessrc/officecli/BatchTypes.csasset16,680 bytessrc/officecli/BlankDocCreator.csasset49,847 bytessrc/officecli/CommandBuilder.Add.csasset29,491 bytessrc/officecli/CommandBuilder.Batch.csasset47,260 bytessrc/officecli/CommandBuilder.Check.csasset2,745 bytessrc/officecli/CommandBuilder.Dump.csasset12,597 bytessrc/officecli/CommandBuilder.GetQuery.csasset23,302 bytessrc/officecli/CommandBuilder.Goto.csasset3,787 bytessrc/officecli/CommandBuilder.Help.csasset22,427 bytessrc/officecli/CommandBuilder.Import.csasset26,740 bytessrc/officecli/CommandBuilder.IntegrationStubs.csasset2,626 bytessrc/officecli/CommandBuilder.Mark.csasset17,952 bytessrc/officecli/CommandBuilder.Plugins.csasset21,502 bytessrc/officecli/CommandBuilder.Raw.csasset8,332 bytessrc/officecli/CommandBuilder.Refresh.csasset2,280 bytessrc/officecli/CommandBuilder.Save.csasset3,815 bytessrc/officecli/CommandBuilder.Set.csasset15,049 bytessrc/officecli/CommandBuilder.SetCore.csasset11,289 bytessrc/officecli/CommandBuilder.View.csasset25,489 bytessrc/officecli/CommandBuilder.ViewCore.csasset38,852 bytessrc/officecli/CommandBuilder.Watch.csasset6,365 bytessrc/officecli/CommandBuilder.csasset118,268 bytessrc/officecli/Core/AtomicPackageWriter.csasset5,210 bytessrc/officecli/Core/AttributeFilter.csasset80,289 bytessrc/officecli/Core/BatchCompat.csasset8,081 bytessrc/officecli/Core/BatchExecutor.csasset6,682 bytessrc/officecli/Core/Bcp47LanguageTag.csasset2,458 bytessrc/officecli/Core/CellPropHints.csasset2,028 bytessrc/officecli/Core/CharsetDecoder.csasset6,002 bytessrc/officecli/Core/Chart/ChartEmbeddedDataSync.csasset12,130 bytessrc/officecli/Core/Chart/ChartExBuilder.Setter.csasset30,253 bytessrc/officecli/Core/Chart/ChartExBuilder.csasset54,528 bytessrc/officecli/Core/Chart/ChartExResources.csasset6,134 bytessrc/officecli/Core/Chart/ChartExStyleBuilder.csasset14,703 bytessrc/officecli/Core/Chart/ChartHelper.Advanced.csasset35,981 bytessrc/officecli/Core/Chart/ChartHelper.Axis.csasset51,787 bytessrc/officecli/Core/Chart/ChartHelper.Builder.csasset115,271 bytessrc/officecli/Core/Chart/ChartHelper.Reader.csasset142,586 bytessrc/officecli/Core/Chart/ChartHelper.Setter.csasset266,458 bytessrc/officecli/Core/Chart/ChartHelper.SetterHelpers.csasset85,550 bytessrc/officecli/Core/Chart/ChartHelper.csasset36,158 bytessrc/officecli/Core/Chart/ChartPresets.csasset6,445 bytessrc/officecli/Core/Chart/ChartSvgRenderer.CxExtract.csasset38,243 bytessrc/officecli/Core/Chart/ChartSvgRenderer.csasset340,000 bytessrc/officecli/Core/CliException.csasset966 bytessrc/officecli/Core/CliLogger.csasset2,191 bytessrc/officecli/Core/ColorMath.csasset5,354 bytessrc/officecli/Core/CompoundFile.csasset18,240 bytessrc/officecli/Core/CsvSepDeclaration.csasset1,955 bytessrc/officecli/Core/DeferredStdout.csasset1,894 bytessrc/officecli/Core/DelimitedText.csasset3,191 bytessrc/officecli/Core/Diagram/DiagramCompiler.csasset1,733 bytessrc/officecli/Core/Diagram/DiagramModel.csasset3,629 bytessrc/officecli/Core/Diagram/DiagramStyles.csasset1,745 bytessrc/officecli/Core/Diagram/FlowchartLayout.csasset27,709 bytessrc/officecli/Core/Diagram/MermaidImageRenderer.csasset32,002 bytessrc/officecli/Core/Diagram/MermaidParser.csasset7,943 bytessrc/officecli/Core/Diagram/SequenceLayout.csasset6,386 bytessrc/officecli/Core/DisplayText.csasset1,043 bytessrc/officecli/Core/DocumentIssue.csasset1,445 bytessrc/officecli/Core/DocumentLimits.csasset6,559 bytessrc/officecli/Core/DocumentNode.csasset1,530 bytessrc/officecli/Core/DrawingColorBuilder.csasset12,814 bytessrc/officecli/Core/DrawingEffectsHelper.csasset19,056 bytessrc/officecli/Core/EditDistance.csasset1,610 bytessrc/officecli/Core/ElementRollback.csasset1,802 bytessrc/officecli/Core/EmuConverter.csasset16,149 bytessrc/officecli/Core/ExcelStyleManager.csasset88,971 bytessrc/officecli/Core/ExtendedPropertiesHandler.csasset4,112 bytessrc/officecli/Core/FileSource.csasset6,860 bytessrc/officecli/Core/FindHelpers.csasset3,169 bytessrc/officecli/Core/FontMetricsReader.csasset29,695 bytessrc/officecli/Core/Formula/FormulaEvaluator.Complex.csasset7,077 bytessrc/officecli/Core/Formula/FormulaEvaluator.Functions.csasset122,474 bytessrc/officecli/Core/Formula/FormulaEvaluator.Helpers.csasset39,609 bytessrc/officecli/Core/Formula/FormulaEvaluator.References.csasset11,158 bytessrc/officecli/Core/Formula/FormulaEvaluator.Regression.csasset12,006 bytessrc/officecli/Core/Formula/FormulaEvaluator.Securities.csasset18,574 bytessrc/officecli/Core/Formula/FormulaEvaluator.Solver.csasset4,007 bytessrc/officecli/Core/Formula/FormulaEvaluator.SpecialFunctions.csasset11,071 bytessrc/officecli/Core/Formula/FormulaEvaluator.Spill.csasset22,599 bytessrc/officecli/Core/Formula/FormulaEvaluator.SpillLambda.csasset5,424 bytessrc/officecli/Core/Formula/FormulaEvaluator.Statistics.csasset14,017 bytessrc/officecli/Core/Formula/FormulaEvaluator.Statistics2.csasset7,416 bytessrc/officecli/Core/Formula/FormulaEvaluator.Statistics3.csasset4,859 bytessrc/officecli/Core/Formula/FormulaEvaluator.csasset80,922 bytessrc/officecli/Core/Formula/FormulaParser.csasset159,331 bytessrc/officecli/Core/Formula/ModernFunctionQualifier.csasset23,007 bytessrc/officecli/Core/Formula/SharedFormulaResolver.csasset5,569 bytessrc/officecli/Core/FormulaRefShifter.csasset25,391 bytessrc/officecli/Core/GenericXmlQuery.csasset34,621 bytessrc/officecli/Core/HtmlPreviewHelper.csasset4,533 bytessrc/officecli/Core/HtmlScreenshot.csasset32,412 bytessrc/officecli/Core/HyperlinkUriValidator.csasset4,540 bytessrc/officecli/Core/IDocumentHandler.csasset5,993 bytessrc/officecli/Core/ImageSource.csasset15,748 bytessrc/officecli/Core/Installer.csasset18,977 bytessrc/officecli/Core/IssueSubtypes.csasset8,669 bytessrc/officecli/Core/KatexAssets.csasset2,532 bytessrc/officecli/Core/LocaleFontRegistry.csasset10,152 bytessrc/officecli/Core/Markdown/MarkdownModel.csasset4,486 bytessrc/officecli/Core/Markdown/MarkdownParser.csasset44,188 bytessrc/officecli/Core/MsysPathHint.csasset6,977 bytessrc/officecli/Core/MutationSelectorGuard.csasset2,917 bytessrc/officecli/Core/NativeRenderFailure.csasset3,458 bytessrc/officecli/Core/NumericText.csasset5,217 bytessrc/officecli/Core/OfficeCliMetadata.csasset10,267 bytessrc/officecli/Core/OfficeDefaultFonts.csasset1,147 bytessrc/officecli/Core/OfficeDefaultThemeColors.csasset3,141 bytessrc/officecli/Core/OleHelper.csasset37,231 bytessrc/officecli/Core/OutputFormatter.csasset35,374 bytessrc/officecli/Core/ParseHelpers.csasset48,198 bytessrc/officecli/Core/PathAliases.csasset1,060 bytessrc/officecli/Core/PathIdentity.csasset2,911 bytessrc/officecli/Core/PathIndex.csasset1,356 bytessrc/officecli/Core/PipeTempDirGuard.csasset3,384 bytessrc/officecli/Core/PivotTableHelper.Cache.csasset63,128 bytessrc/officecli/Core/PivotTableHelper.Definition.csasset84,506 bytessrc/officecli/Core/PivotTableHelper.Parse.csasset38,968 bytessrc/officecli/Core/PivotTableHelper.Readback.csasset31,329 bytessrc/officecli/Core/PivotTableHelper.Render.csasset132,310 bytessrc/officecli/Core/PivotTableHelper.Set.csasset42,867 bytessrc/officecli/Core/PivotTableHelper.csasset106,775 bytessrc/officecli/Core/Plugins/DumpReaderInvoker.csasset10,605 bytessrc/officecli/Core/Plugins/ExporterInvoker.csasset5,010 bytessrc/officecli/Core/Plugins/FormatHandlerProxy.csasset16,317 bytessrc/officecli/Core/Plugins/FormatHandlerSession.csasset16,024 bytessrc/officecli/Core/Plugins/PluginManifest.csasset12,044 bytessrc/officecli/Core/Plugins/PluginProcess.csasset8,971 bytessrc/officecli/Core/Plugins/PluginRegistry.csasset14,806 bytessrc/officecli/Core/PowerPointPngBackend.csasset9,213 bytessrc/officecli/Core/RawXmlHelper.csasset74,239 bytessrc/officecli/Core/Rendering/IRenderer.csasset2,526 bytessrc/officecli/Core/Rendering/RenderCapabilities.csasset2,277 bytessrc/officecli/Core/Rendering/RenderOptions.csasset2,549 bytessrc/officecli/Core/Rendering/RenderOutputKind.csasset1,890 bytessrc/officecli/Core/Rendering/RenderResult.csasset2,688 bytessrc/officecli/Core/Rendering/RendererRegistry.csasset3,419 bytessrc/officecli/Core/ResidentFlushPolicy.csasset4,663 bytessrc/officecli/Core/SchemaKeyNormalizer.csasset893 bytessrc/officecli/Core/SchemaOrder.csasset11,356 bytessrc/officecli/Core/SelectorCommaSplit.csasset3,342 bytessrc/officecli/Core/SelectorPositionalIndex.csasset2,578 bytessrc/officecli/Core/SkillInstaller.csasset36,091 bytessrc/officecli/Core/SlideSizeDefaults.csasset2,469 bytessrc/officecli/Core/SpacingConverter.csasset20,523 bytessrc/officecli/Core/SsrfGuard.csasset6,705 bytessrc/officecli/Core/StyleUnsupportedHints.csasset3,591 bytessrc/officecli/Core/SvgImageHelper.csasset8,971 bytessrc/officecli/Core/TableStyles/Families/DarkStyle1.csasset2,334 bytessrc/officecli/Core/TableStyles/Families/DarkStyle2.csasset1,843 bytessrc/officecli/Core/TableStyles/Families/LightStyle1.csasset1,386 bytessrc/officecli/Core/TableStyles/Families/LightStyle2.csasset1,326 bytessrc/officecli/Core/TableStyles/Families/LightStyle3.csasset1,259 bytessrc/officecli/Core/TableStyles/Families/MediumStyle1.csasset1,383 bytessrc/officecli/Core/TableStyles/Families/MediumStyle2.csasset3,037 bytessrc/officecli/Core/TableStyles/Families/MediumStyle3.csasset1,732 bytessrc/officecli/Core/TableStyles/Families/MediumStyle4.csasset1,788 bytessrc/officecli/Core/TableStyles/Families/ThemedStyle1.csasset2,223 bytessrc/officecli/Core/TableStyles/Families/ThemedStyle2.csasset2,450 bytessrc/officecli/Core/TableStyles/TableStyleRegistry.csasset12,982 bytessrc/officecli/Core/TableStyles/TableStyleResolver.csasset11,195 bytessrc/officecli/Core/TableStyles/TableStyleTypes.csasset5,870 bytessrc/officecli/Core/TemplateMerger.csasset22,344 bytessrc/officecli/Core/TextEscape.csasset3,101 bytessrc/officecli/Core/ThemeColorResolver.csasset3,437 bytessrc/officecli/Core/ThemeHandler.csasset7,285 bytessrc/officecli/Core/ThreeAssets.csasset1,928 bytessrc/officecli/Core/TrackingPropertyDictionary.csasset7,422 bytessrc/officecli/Core/TypedAttributeFallback.csasset12,751 bytessrc/officecli/Core/Units.csasset2,848 bytessrc/officecli/Core/UpdateChecker.csasset39,555 bytessrc/officecli/Core/Watch/WatchMark.csasset7,029 bytessrc/officecli/Core/Watch/WatchNotifier.csasset21,380 bytessrc/officecli/Core/Watch/WatchServer.csasset142,212 bytessrc/officecli/Core/WordHtmlRefresh.csasset6,591 bytessrc/officecli/Core/WordIndentAliases.csasset1,418 bytessrc/officecli/Core/WordNumFmtRenderer.csasset32,621 bytessrc/officecli/Core/WordPageDefaults.csasset1,284 bytessrc/officecli/Core/WordPdfBackend.csasset34,941 bytessrc/officecli/Core/WordStrictAttributeSanitizer.csasset5,445 bytessrc/officecli/Core/WordTocBuilder.csasset11,419 bytessrc/officecli/Core/WorksheetBloatFilter.csasset15,975 bytessrc/officecli/Core/XmlTextValidator.csasset3,985 bytessrc/officecli/Handlers/DocumentHandlerFactory.csasset31,119 bytessrc/officecli/Handlers/Excel/ExcelBatchEmitter.Elements.csasset47,592 bytessrc/officecli/Handlers/Excel/ExcelBatchEmitter.csasset51,877 bytessrc/officecli/Handlers/Excel/ExcelDataFormatter.csasset16,550 bytessrc/officecli/Handlers/Excel/ExcelHandler.Add.Cells.csasset94,811 bytessrc/officecli/Handlers/Excel/ExcelHandler.Add.Cf.csasset50,158 bytessrc/officecli/Handlers/Excel/ExcelHandler.Add.Chart.csasset30,943 bytessrc/officecli/Handlers/Excel/ExcelHandler.Add.Drawings.csasset58,426 bytessrc/officecli/Handlers/Excel/ExcelHandler.Add.Tables.csasset96,924 bytessrc/officecli/Handlers/Excel/ExcelHandler.Add.csasset72,042 bytessrc/officecli/Handlers/Excel/ExcelHandler.ChartCache.csasset12,914 bytessrc/officecli/Handlers/Excel/ExcelHandler.CheckGeneralPrecision.csasset10,006 bytessrc/officecli/Handlers/Excel/ExcelHandler.CheckNumericOverflow.csasset22,005 bytessrc/officecli/Handlers/Excel/ExcelHandler.CheckOverflow.csasset10,031 bytessrc/officecli/Handlers/Excel/ExcelHandler.DumpSupport.csasset44,047 bytessrc/officecli/Handlers/Excel/ExcelHandler.DynamicArray.csasset3,856 bytessrc/officecli/Handlers/Excel/ExcelHandler.FormulaCache.csasset21,004 bytessrc/officecli/Handlers/Excel/ExcelHandler.Helpers.Cell.csasset36,641 bytessrc/officecli/Handlers/Excel/ExcelHandler.Helpers.Chart.csasset40,001 bytessrc/officecli/Handlers/Excel/ExcelHandler.Helpers.ConditionalFormat.csasset10,933 bytessrc/officecli/Handlers/Excel/ExcelHandler.Helpers.Drawing.csasset81,598 bytessrc/officecli/Handlers/Excel/ExcelHandler.Helpers.Node.csasset64,727 bytessrc/officecli/Handlers/Excel/ExcelHandler.Helpers.Ole.csasset12,524 bytessrc/officecli/Handlers/Excel/ExcelHandler.Helpers.Sheet.csasset31,498 bytessrc/officecli/Handlers/Excel/ExcelHandler.Helpers.TableStyle.csasset7,087 bytessrc/officecli/Handlers/Excel/ExcelHandler.Helpers.Validation.csasset35,723 bytessrc/officecli/Handlers/Excel/ExcelHandler.Helpers.csasset19,043 bytessrc/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.Charts.csasset26,292 bytessrc/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.Pictures.csasset3,963 bytessrc/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.Shapes.csasset11,661 bytessrc/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.csasset215,229 bytessrc/officecli/Handlers/Excel/ExcelHandler.Import.csasset24,043 bytessrc/officecli/Handlers/Excel/ExcelHandler.Query.Cf.csasset13,125 bytessrc/officecli/Handlers/Excel/ExcelHandler.Query.RowWhere.csasset32,230 bytessrc/officecli/Handlers/Excel/ExcelHandler.Query.csasset119,692 bytessrc/officecli/Handlers/Excel/ExcelHandler.Remove.csasset93,637 bytessrc/officecli/Handlers/Excel/ExcelHandler.RichValueImage.csasset17,444 bytessrc/officecli/Handlers/Excel/ExcelHandler.Selector.csasset18,861 bytessrc/officecli/Handlers/Excel/ExcelHandler.Set.Cells.csasset49,075 bytessrc/officecli/Handlers/Excel/ExcelHandler.Set.Charts.csasset9,404 bytessrc/officecli/Handlers/Excel/ExcelHandler.Set.Drawings.csasset36,503 bytessrc/officecli/Handlers/Excel/ExcelHandler.Set.Ranges.csasset43,933 bytessrc/officecli/Handlers/Excel/ExcelHandler.Set.RowsCols.csasset21,155 bytessrc/officecli/Handlers/Excel/ExcelHandler.Set.Sheet.csasset62,668 bytessrc/officecli/Handlers/Excel/ExcelHandler.Set.Tables.csasset60,091 bytessrc/officecli/Handlers/Excel/ExcelHandler.Set.Workbook.csasset22,001 bytessrc/officecli/Handlers/Excel/ExcelHandler.Set.csasset18,423 bytessrc/officecli/Handlers/Excel/ExcelHandler.SheetShift.csasset36,976 bytessrc/officecli/Handlers/Excel/ExcelHandler.Slicer.csasset46,755 bytessrc/officecli/Handlers/Excel/ExcelHandler.View.csasset57,394 bytessrc/officecli/Handlers/ExcelHandler.csasset29,360 bytessrc/officecli/Handlers/PowerPointHandler.csasset280,005 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_colorpulse.xmlasset1,027 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_complementarycolor.xmlasset1,032 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_complementarycolor2.xmlasset1,035 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_contrastingcolor.xmlasset1,035 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_darken.xmlasset1,044 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_desaturate.xmlasset1,029 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_fillcolor.xmlasset701 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_growshrink.xmlasset163 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_lighten.xmlasset1,038 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_linecolor.xmlasset483 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_objectcolor.xmlasset979 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_pulse.xmlasset365 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_spin.xmlasset200 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_teeter.xmlasset1,260 bytessrc/officecli/Handlers/Pptx/EffectTemplates/emph_transparency.xmlasset394 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_basic_swivel.xmlasset3,529 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_basic_zoom.xmlasset1,416 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_boomerang.xmlasset4,927 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_center_revolve.xmlasset7,454 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_collapse.xmlasset1,420 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_contract.xmlasset1,629 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_credits.xmlasset1,434 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_curve_down.xmlasset1,596 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_float.xmlasset3,637 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_float_out.xmlasset1,627 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_pinwheel.xmlasset2,132 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_shrink_turn.xmlasset2,130 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_sink_down.xmlasset2,261 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_spinner.xmlasset2,127 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_spiral_out.xmlasset8,146 bytessrc/officecli/Handlers/Pptx/EffectTemplates/exit_stretchy.xmlasset1,627 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Add.Diagram.csasset22,966 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Add.Media.csasset74,649 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Add.Misc.csasset141,926 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Add.Model3D.csasset33,696 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Add.Shape.csasset60,516 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Add.Slide.csasset12,500 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Add.Table.csasset36,475 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Add.Text.csasset70,586 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Add.csasset7,405 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Align.csasset9,261 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Animations.csasset158,071 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Background.csasset51,230 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Chart.csasset11,792 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Comments.csasset18,092 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.EffectTemplates.csasset13,530 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Effects.csasset45,408 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Fill.csasset51,529 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Helpers.FindReplace.csasset33,504 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Helpers.Geometry.csasset23,405 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Helpers.Ole.csasset6,681 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Helpers.Path.csasset34,107 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Helpers.RunFormat.csasset35,747 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Helpers.ShapeId.csasset12,036 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Helpers.Table.csasset9,190 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Helpers.Text.csasset14,685 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Helpers.Transition.csasset6,154 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Helpers.Zoom3D.csasset11,193 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Helpers.csasset8,556 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.Charts.csasset9,015 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.Css.csasset177,366 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.Shapes.csasset173,618 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.Tables.csasset33,536 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.Text.csasset86,532 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.csasset48,353 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Hyperlinks.csasset18,726 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.ModernComments.csasset22,313 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Mutations.csasset122,927 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.NodeBuilder.csasset211,447 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Notes.csasset23,467 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.PresetAdjustGuides.csasset17,615 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Query.csasset150,301 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Resolve.csasset31,676 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Selector.csasset21,134 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Set.Chart.csasset6,668 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Set.Media.csasset66,681 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Set.Presentation.csasset9,540 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Set.Shape.csasset128,726 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Set.Slide.csasset30,701 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Set.Table.csasset26,002 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Set.csasset34,417 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.ShapeProperties.csasset240,071 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.StyleList.csasset26,868 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.SvgPreview.csasset104,412 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.Theme.csasset17,857 bytessrc/officecli/Handlers/Pptx/PowerPointHandler.View.csasset63,397 bytessrc/officecli/Handlers/Pptx/PptxBatchEmitter.AuxParts.csasset9,638 bytessrc/officecli/Handlers/Pptx/PptxBatchEmitter.Charts.csasset31,002 bytessrc/officecli/Handlers/Pptx/PptxBatchEmitter.Filters.csasset15,332 bytessrc/officecli/Handlers/Pptx/PptxBatchEmitter.Media.csasset42,817 bytessrc/officecli/Handlers/Pptx/PptxBatchEmitter.Notes.csasset13,583 bytessrc/officecli/Handlers/Pptx/PptxBatchEmitter.Resources.csasset29,627 bytessrc/officecli/Handlers/Pptx/PptxBatchEmitter.Shape.csasset66,509 bytessrc/officecli/Handlers/Pptx/PptxBatchEmitter.Table.csasset12,337 bytessrc/officecli/Handlers/Pptx/PptxBatchEmitter.csasset123,838 bytessrc/officecli/Handlers/Pptx/SlideComposition.csasset16,500 bytessrc/officecli/Handlers/Pptx/SpacingPercentExtensions.csasset1,377 bytessrc/officecli/Handlers/Rendering/BasicRenderers.csasset4,096 bytessrc/officecli/Handlers/Rendering/HandlerRenderInput.csasset1,331 bytessrc/officecli/Handlers/Word/WordBatchEmitter.AuxParts.csasset7,505 bytessrc/officecli/Handlers/Word/WordBatchEmitter.Charts.csasset18,667 bytessrc/officecli/Handlers/Word/WordBatchEmitter.Fields.csasset57,124 bytessrc/officecli/Handlers/Word/WordBatchEmitter.Filters.csasset30,939 bytessrc/officecli/Handlers/Word/WordBatchEmitter.Paragraph.csasset292,153 bytessrc/officecli/Handlers/Word/WordBatchEmitter.Resources.csasset225,841 bytessrc/officecli/Handlers/Word/WordBatchEmitter.Table.csasset88,456 bytessrc/officecli/Handlers/Word/WordBatchEmitter.csasset63,501 bytessrc/officecli/Handlers/Word/WordHandler.Add.Diagram.csasset26,719 bytessrc/officecli/Handlers/Word/WordHandler.Add.Markdown.csasset25,652 bytessrc/officecli/Handlers/Word/WordHandler.Add.Media.csasset90,157 bytessrc/officecli/Handlers/Word/WordHandler.Add.Misc.csasset207,703 bytessrc/officecli/Handlers/Word/WordHandler.Add.Structure.csasset175,019 bytessrc/officecli/Handlers/Word/WordHandler.Add.Table.csasset88,976 bytessrc/officecli/Handlers/Word/WordHandler.Add.Text.csasset205,949 bytessrc/officecli/Handlers/Word/WordHandler.Add.csasset63,548 bytessrc/officecli/Handlers/Word/WordHandler.CommentsExt.csasset8,450 bytessrc/officecli/Handlers/Word/WordHandler.FormFields.csasset38,678 bytessrc/officecli/Handlers/Word/WordHandler.Helpers.Chart.csasset16,376 bytessrc/officecli/Handlers/Word/WordHandler.Helpers.Field.csasset37,792 bytessrc/officecli/Handlers/Word/WordHandler.Helpers.FindReplace.csasset66,048 bytessrc/officecli/Handlers/Word/WordHandler.Helpers.HeaderFooter.csasset7,127 bytessrc/officecli/Handlers/Word/WordHandler.Helpers.RunFormat.csasset68,099 bytessrc/officecli/Handlers/Word/WordHandler.Helpers.SectionTable.csasset13,159 bytessrc/officecli/Handlers/Word/WordHandler.Helpers.Structure.csasset5,832 bytessrc/officecli/Handlers/Word/WordHandler.Helpers.Style.csasset11,323 bytessrc/officecli/Handlers/Word/WordHandler.Helpers.Text.csasset33,462 bytessrc/officecli/Handlers/Word/WordHandler.Helpers.TextEffect.csasset20,598 bytessrc/officecli/Handlers/Word/WordHandler.Helpers.csasset20,796 bytessrc/officecli/Handlers/Word/WordHandler.HtmlPreview.Charts.csasset8,790 bytessrc/officecli/Handlers/Word/WordHandler.HtmlPreview.Css.csasset183,176 bytessrc/officecli/Handlers/Word/WordHandler.HtmlPreview.Markers.csasset27,553 bytessrc/officecli/Handlers/Word/WordHandler.HtmlPreview.Shapes.csasset86,255 bytessrc/officecli/Handlers/Word/WordHandler.HtmlPreview.Tables.csasset60,979 bytessrc/officecli/Handlers/Word/WordHandler.HtmlPreview.Text.csasset96,717 bytessrc/officecli/Handlers/Word/WordHandler.HtmlPreview.csasset208,295 bytessrc/officecli/Handlers/Word/WordHandler.I18n.csasset13,900 bytessrc/officecli/Handlers/Word/WordHandler.ImageHelpers.csasset56,578 bytessrc/officecli/Handlers/Word/WordHandler.Mutations.csasset136,384 bytessrc/officecli/Handlers/Word/WordHandler.Navigation.DocSettings.csasset12,459 bytessrc/officecli/Handlers/Word/WordHandler.Navigation.csasset423,098 bytessrc/officecli/Handlers/Word/WordHandler.Query.csasset191,235 bytessrc/officecli/Handlers/Word/WordHandler.Selector.csasset22,056 bytessrc/officecli/Handlers/Word/WordHandler.SeqEval.csasset8,878 bytessrc/officecli/Handlers/Word/WordHandler.Set.Compatibility.csasset11,128 bytessrc/officecli/Handlers/Word/WordHandler.Set.Dispatch.csasset118,098 bytessrc/officecli/Handlers/Word/WordHandler.Set.DocDefaults.csasset17,127 bytessrc/officecli/Handlers/Word/WordHandler.Set.DocSettings.csasset15,560 bytessrc/officecli/Handlers/Word/WordHandler.Set.Element.csasset211,924 bytessrc/officecli/Handlers/Word/WordHandler.Set.Revision.csasset82,976 bytessrc/officecli/Handlers/Word/WordHandler.Set.SectionLayout.csasset40,583 bytessrc/officecli/Handlers/Word/WordHandler.Set.csasset126,495 bytessrc/officecli/Handlers/Word/WordHandler.StyleList.csasset86,218 bytessrc/officecli/Handlers/Word/WordHandler.View.csasset80,695 bytessrc/officecli/Handlers/WordHandler.csasset137,549 bytessrc/officecli/Help/SchemaCrc.csasset2,568 bytessrc/officecli/Help/SchemaHelpFlatRenderer.csasset16,090 bytessrc/officecli/Help/SchemaHelpLoader.csasset34,728 bytessrc/officecli/Help/SchemaHelpRenderer.csasset16,181 bytessrc/officecli/McpInstaller.csasset21,538 bytessrc/officecli/McpServer.csasset34,538 bytessrc/officecli/Program.csasset12,431 bytessrc/officecli/ResidentClient.csasset14,628 bytessrc/officecli/ResidentDirtyMarker.csasset6,697 bytessrc/officecli/ResidentServer.csasset122,718 bytessrc/officecli/Resources/chartex-colors.xmlasset878 bytessrc/officecli/Resources/chartex-style.xmlasset9,630 bytessrc/officecli/Resources/cx-gallery/fragments/035e730360df.xmlasset255 bytessrc/officecli/Resources/cx-gallery/fragments/04b7f28829bb.xmlasset269 bytessrc/officecli/Resources/cx-gallery/fragments/065a16c3b9e4.xmlasset233 bytessrc/officecli/Resources/cx-gallery/fragments/0893349d4b03.xmlasset321 bytessrc/officecli/Resources/cx-gallery/fragments/0db270a742c0.xmlasset347 bytessrc/officecli/Resources/cx-gallery/fragments/0fd9b7b60362.xmlasset271 bytessrc/officecli/Resources/cx-gallery/fragments/0feb50a2e3f8.xmlasset198 bytessrc/officecli/Resources/cx-gallery/fragments/123ab0e2d611.xmlasset355 bytessrc/officecli/Resources/cx-gallery/fragments/141beaa06399.xmlasset193 bytessrc/officecli/Resources/cx-gallery/fragments/1986109cf100.xmlasset467 bytessrc/officecli/Resources/cx-gallery/fragments/1e8d1ffd1a8c.xmlasset394 bytessrc/officecli/Resources/cx-gallery/fragments/210a316420df.xmlasset345 bytessrc/officecli/Resources/cx-gallery/fragments/24221c2aab80.xmlasset311 bytessrc/officecli/Resources/cx-gallery/fragments/29625a56d05a.xmlasset410 bytessrc/officecli/Resources/cx-gallery/fragments/29890d0b5470.xmlasset355 bytessrc/officecli/Resources/cx-gallery/fragments/2ca3a8c223ed.xmlasset380 bytessrc/officecli/Resources/cx-gallery/fragments/2cf48662dc02.xmlasset263 bytessrc/officecli/Resources/cx-gallery/fragments/305f09d3f3ce.xmlasset333 bytessrc/officecli/Resources/cx-gallery/fragments/30e2b1d8b034.xmlasset227 bytessrc/officecli/Resources/cx-gallery/fragments/32dd428a9604.xmlasset243 bytessrc/officecli/Resources/cx-gallery/fragments/35bc296838ac.xmlasset239 bytessrc/officecli/Resources/cx-gallery/fragments/37b4faa2ef3c.xmlasset226 bytessrc/officecli/Resources/cx-gallery/fragments/3eb02632526a.xmlasset197 bytessrc/officecli/Resources/cx-gallery/fragments/402b13c690b9.xmlasset320 bytessrc/officecli/Resources/cx-gallery/fragments/445cb20794c3.xmlasset295 bytessrc/officecli/Resources/cx-gallery/fragments/4a597f14d4a0.xmlasset234 bytessrc/officecli/Resources/cx-gallery/fragments/52b9facbf7ce.xmlasset231 bytessrc/officecli/Resources/cx-gallery/fragments/57636ce91218.xmlasset295 bytessrc/officecli/Resources/cx-gallery/fragments/5c8453ec5897.xmlasset308 bytessrc/officecli/Resources/cx-gallery/fragments/5dbcf86bdb77.xmlasset328 bytessrc/officecli/Resources/cx-gallery/fragments/5df9aa84f62b.xmlasset304 bytessrc/officecli/Resources/cx-gallery/fragments/5f4301e9c8ec.xmlasset155 bytessrc/officecli/Resources/cx-gallery/fragments/64247a530aa7.xmlasset303 bytessrc/officecli/Resources/cx-gallery/fragments/68e668f06770.xmlasset288 bytessrc/officecli/Resources/cx-gallery/fragments/6a957dd378ab.xmlasset279 bytessrc/officecli/Resources/cx-gallery/fragments/6e14b05b13e4.xmlasset363 bytessrc/officecli/Resources/cx-gallery/fragments/71ee8638aac5.xmlasset317 bytessrc/officecli/Resources/cx-gallery/fragments/72e1bb84373e.xmlasset185 bytessrc/officecli/Resources/cx-gallery/fragments/7372d86477ae.xmlasset333 bytessrc/officecli/Resources/cx-gallery/fragments/754767150acb.xmlasset227 bytessrc/officecli/Resources/cx-gallery/fragments/7a8f616c6e79.xmlasset291 bytessrc/officecli/Resources/cx-gallery/fragments/7bc7f372483c.xmlasset190 bytessrc/officecli/Resources/cx-gallery/fragments/7dfc3552b0f1.xmlasset297 bytessrc/officecli/Resources/cx-gallery/fragments/81190f0426f6.xmlasset187 bytessrc/officecli/Resources/cx-gallery/fragments/85f53ae43cd5.xmlasset413 bytessrc/officecli/Resources/cx-gallery/fragments/87af24f622ec.xmlasset433 bytessrc/officecli/Resources/cx-gallery/fragments/8ee61af80f9c.xmlasset181 bytessrc/officecli/Resources/cx-gallery/fragments/9718af506d0b.xmlasset315 bytessrc/officecli/Resources/cx-gallery/fragments/98583bda231a.xmlasset288 bytessrc/officecli/Resources/cx-gallery/fragments/9d4eb558580b.xmlasset227 bytessrc/officecli/Resources/cx-gallery/fragments/9f29fea3f8c8.xmlasset174 bytessrc/officecli/Resources/cx-gallery/fragments/a3e2ff3cd02e.xmlasset194 bytessrc/officecli/Resources/cx-gallery/fragments/aa5b6bc6ada5.xmlasset248 bytessrc/officecli/Resources/cx-gallery/fragments/b0b25814aac6.xmlasset384 bytessrc/officecli/Resources/cx-gallery/fragments/b34898343bc4.xmlasset262 bytessrc/officecli/Resources/cx-gallery/fragments/bdbd65192879.xmlasset297 bytessrc/officecli/Resources/cx-gallery/fragments/be2511784184.xmlasset233 bytessrc/officecli/Resources/cx-gallery/fragments/c4c2507626e5.xmlasset345 bytessrc/officecli/Resources/cx-gallery/fragments/c6f1a11e9bc2.xmlasset271 bytessrc/officecli/Resources/cx-gallery/fragments/c9c93edef3ed.xmlasset52 bytessrc/officecli/Resources/cx-gallery/fragments/cbc2de54fdcb.xmlasset145 bytessrc/officecli/Resources/cx-gallery/fragments/cd874f9bb7e0.xmlasset320 bytessrc/officecli/Resources/cx-gallery/fragments/cdfc52207e22.xmlasset233 bytessrc/officecli/Resources/cx-gallery/fragments/ce0014f44358.xmlasset349 bytessrc/officecli/Resources/cx-gallery/fragments/ce32c7492ea0.xmlasset345 bytessrc/officecli/Resources/cx-gallery/fragments/d461e2e65ee5.xmlasset231 bytessrc/officecli/Resources/cx-gallery/fragments/d493e81cf00d.xmlasset266 bytessrc/officecli/Resources/cx-gallery/fragments/d6b25ec85910.xmlasset290 bytessrc/officecli/Resources/cx-gallery/fragments/dae5d2618ca4.xmlasset202 bytessrc/officecli/Resources/cx-gallery/fragments/df172bfc2c76.xmlasset651 bytessrc/officecli/Resources/cx-gallery/fragments/e2746191bb9f.xmlasset27 bytessrc/officecli/Resources/cx-gallery/fragments/e4e24c0e9598.xmlasset429 bytessrc/officecli/Resources/cx-gallery/fragments/e88d09d2c1eb.xmlasset329 bytessrc/officecli/Resources/cx-gallery/fragments/edbacd48f60e.xmlasset143 bytessrc/officecli/Resources/cx-gallery/fragments/ef428f41a8f7.xmlasset336 bytessrc/officecli/Resources/cx-gallery/fragments/f0722100673e.xmlasset299 bytessrc/officecli/Resources/cx-gallery/fragments/f16880ab62cc.xmlasset347 bytessrc/officecli/Resources/cx-gallery/index.jsonasset69,497 bytessrc/officecli/Resources/preview.cssasset7,740 bytessrc/officecli/Resources/preview.jsruns9,060 bytessrc/officecli/Resources/watch-overlay.jsruns48,401 bytessrc/officecli/Resources/watch-sse-core.jsruns23,370 bytessrc/officecli/officecli.csprojasset2,697 bytes
Read SKILL.md
# officecli
AI-friendly CLI for .docx, .xlsx, .pptx. Single binary, no dependencies, no Office installation needed.
## Install
If `officecli` is not installed:
```bash
# macOS / Linux
curl -fsSL https://d.officecli.ai/install.sh | bash
# Windows (PowerShell)
irm https://d.officecli.ai/install.ps1 | iexView the complete source on GitHubmorph-ppt
When your agent uses it
Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style continuous motion, shapes that grow / move / rotate as the slide advances. Trigger on: 'morph', 'morph transition', 'smooth transition', 'continuous animation across slides', 'Keynote-style transition', 'animated slide sequence', 'shape continuity across slides'. Output is a single .pptx. This skill is a scene layer on top of officecli-pptx — inherits every pptx v2 rule (visual floor, grid, palettes, connector canon, Delivery Gate 1–5a). DO NOT invoke for a generic deck, pitch deck, or board review without cross-slide motion — route those to officecli-pptx base or officecli-pitch-deck.
What it loads into context
Frontmatter
173 tokensAlways available to the agent
SKILL.md
13,220 tokensWhen the skill is activated
Reference documents
34,981 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Setup
- ⚠<U+FE0F> Help-First Rule
- Mental Model & Inheritance
- Shell & Execution Discipline
- Two primitives this skill owns
- What is Morph? (core mechanics)
- Morph Pair Planning (pre-code, REQUIRED)
- Morph Recipes (4 patterns)
- Choreography — animation types + staggered timing
- Scene-actor spatial rule
- Style library lookup workflow
- Delivery Gate (inherits pptx v2 + morph additions)
- Renderer honesty
- Ghost Discipline & Actor Lifecycle
- Common Morph Pitfalls (design + workflow traps)
- Known Issues & Pitfalls
- Outputs & delivery
- Adjustments after creation
- References
Scripts executed separately
reference/morph-helpers.pyreference/morph-helpers.shreference/styles/bw--brutalist-raw/build.shreference/styles/bw--mono-line/build.shreference/styles/bw--swiss-bauhaus/build.shreference/styles/dark--architectural-plan/build.shreference/styles/dark--blueprint-grid/build.shreference/styles/dark--circle-digital/build.shreference/styles/dark--cosmic-neon/build.shreference/styles/dark--cyber-future/build.shreference/styles/dark--diagonal-cut/build.shreference/styles/dark--editorial-story/build.shreference/styles/dark--investor-pitch/build.shreference/styles/dark--liquid-flow/build.shreference/styles/dark--luxury-minimal/build.shreference/styles/dark--neon-productivity/build.shreference/styles/dark--premium-navy/build.shreference/styles/dark--space-odyssey/build.shreference/styles/dark--spotlight-stage/build.shreference/styles/light--bold-type/build.shreference/styles/light--isometric-clean/build.shreference/styles/light--minimal-product/build.shreference/styles/light--watercolor-wash/build.shreference/styles/mixed--duotone-split/build.shreference/styles/vivid--candy-stripe/build.shreference/styles/vivid--playful-marketing/build.shreference/styles/warm--brand-refresh/build.shreference/styles/warm--earth-organic/build.shreference/styles/warm--playful-organic/build.sh
Files
SKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesSKILL.mdcore48,768 bytesreference/decision-rules.mddoc6,141 bytesreference/morph-helpers.pyruns16,483 bytesreference/morph-helpers.shruns12,780 bytesreference/pptx-design.mddoc13,935 bytesreference/styles/INDEX.mddoc17,649 bytesreference/styles/bw--brutalist-raw/build.shruns12,549 bytesreference/styles/bw--brutalist-raw/bw__brutalist_raw.pptxasset13,521 bytesreference/styles/bw--brutalist-raw/style.mddoc2,145 bytesreference/styles/bw--mono-line/build.shruns14,863 bytesreference/styles/bw--mono-line/bw__mono_line.pptxasset15,074 bytesreference/styles/bw--mono-line/style.mddoc4,011 bytesreference/styles/bw--swiss-bauhaus/build.shruns12,651 bytesreference/styles/bw--swiss-bauhaus/bw__swiss_bauhaus.pptxasset13,298 bytesreference/styles/bw--swiss-bauhaus/style.mddoc2,261 bytesreference/styles/bw--swiss-system/style.mddoc1,305 bytesreference/styles/dark--architectural-plan/build.shruns25,569 bytesreference/styles/dark--architectural-plan/dark__architectural_plan.pptxasset20,683 bytesreference/styles/dark--architectural-plan/style.mddoc1,792 bytesreference/styles/dark--aurora-softedge/style.mddoc625 bytesreference/styles/dark--blueprint-grid/build.shruns27,378 bytesreference/styles/dark--blueprint-grid/dark__blueprint_grid.pptxasset15,603 bytesreference/styles/dark--blueprint-grid/style.mddoc1,479 bytesreference/styles/dark--circle-digital/build.shruns25,005 bytesreference/styles/dark--circle-digital/dark__circle_digital.pptxasset18,645 bytesreference/styles/dark--circle-digital/style.mddoc1,821 bytesreference/styles/dark--cosmic-neon/build.shruns15,206 bytesreference/styles/dark--cosmic-neon/dark__cosmic_neon.pptxasset20,045 bytesreference/styles/dark--cosmic-neon/style.mddoc2,709 bytesreference/styles/dark--cyber-future/build.shruns15,863 bytesreference/styles/dark--cyber-future/dark__cyber_future.pptxasset19,041 bytesreference/styles/dark--cyber-future/style.mddoc2,448 bytesreference/styles/dark--diagonal-cut/build.shruns19,207 bytesreference/styles/dark--diagonal-cut/dark__diagonal_cut.pptxasset17,367 bytesreference/styles/dark--diagonal-cut/style.mddoc4,395 bytesreference/styles/dark--editorial-story/build.shruns22,309 bytesreference/styles/dark--editorial-story/dark__editorial_story.pptxasset24,186 bytesreference/styles/dark--editorial-story/style.mddoc2,439 bytesreference/styles/dark--investor-pitch/build.shruns43,207 bytesreference/styles/dark--investor-pitch/style.mddoc2,397 bytesreference/styles/dark--investor-pitch/template.pptxasset22,294 bytesreference/styles/dark--liquid-flow/build.shruns21,322 bytesreference/styles/dark--liquid-flow/dark__liquid_flow.pptxasset16,096 bytesreference/styles/dark--liquid-flow/style.mddoc1,842 bytesreference/styles/dark--luxury-minimal/build.shruns12,577 bytesreference/styles/dark--luxury-minimal/dark__luxury_minimal.pptxasset18,989 bytesreference/styles/dark--luxury-minimal/style.mddoc2,358 bytesreference/styles/dark--midnight-blueprint/style.mddoc2,660 bytesreference/styles/dark--neon-productivity/build.shruns33,794 bytesreference/styles/dark--neon-productivity/dark__neon_productivity.pptxasset36,279 bytesreference/styles/dark--neon-productivity/style.mddoc2,643 bytesreference/styles/dark--obsidian-amber/style.mddoc615 bytesreference/styles/dark--premium-navy/build.shruns14,738 bytesreference/styles/dark--premium-navy/dark__premium_navy.pptxasset15,088 bytesreference/styles/dark--premium-navy/style.mddoc4,909 bytesreference/styles/dark--sage-grain/style.mddoc1,809 bytesreference/styles/dark--space-odyssey/build.shruns32,203 bytesreference/styles/dark--space-odyssey/dark__space_odyssey.pptxasset20,246 bytesreference/styles/dark--space-odyssey/style.mddoc2,894 bytesreference/styles/dark--spotlight-stage/build.shruns16,429 bytesreference/styles/dark--spotlight-stage/dark__spotlight_stage.pptxasset14,256 bytesreference/styles/dark--spotlight-stage/style.mddoc1,565 bytesreference/styles/dark--velvet-rose/style.mddoc612 bytesreference/styles/light--bold-type/build.shruns18,363 bytesreference/styles/light--bold-type/light__bold_type.pptxasset13,691 bytesreference/styles/light--bold-type/style.mddoc5,285 bytesreference/styles/light--firmwise-saas/style.mddoc956 bytesreference/styles/light--fluid-gradient/style.mddoc562 bytesreference/styles/light--glassmorphism-vc/style.mddoc588 bytesreference/styles/light--isometric-clean/build.shruns16,477 bytesreference/styles/light--isometric-clean/light__isometric_clean.pptxasset14,365 bytesreference/styles/light--isometric-clean/style.mddoc1,538 bytesreference/styles/light--minimal-corporate/style.mddoc2,734 bytesreference/styles/light--minimal-product/build.shruns17,526 bytesreference/styles/light--minimal-product/light__minimal_product.pptxasset20,566 bytesreference/styles/light--minimal-product/style.mddoc2,662 bytesreference/styles/light--project-proposal/style.mddoc2,837 bytesreference/styles/light--spring-launch/style.mddoc2,766 bytesreference/styles/light--training-interactive/style.mddoc2,627 bytesreference/styles/light--watercolor-wash/build.shruns19,538 bytesreference/styles/light--watercolor-wash/light__watercolor_wash.pptxasset18,160 bytesreference/styles/light--watercolor-wash/style.mddoc1,513 bytesreference/styles/mixed--bauhaus-blocks/style.mddoc5,279 bytesreference/styles/mixed--chromatic-aberration/style.mddoc5,125 bytesreference/styles/mixed--duotone-split/build.shruns14,598 bytesreference/styles/mixed--duotone-split/mixed__duotone_split.pptxasset14,373 bytesreference/styles/mixed--duotone-split/style.mddoc3,825 bytesreference/styles/mixed--spectral-grid/style.mddoc589 bytesreference/styles/vivid--bauhaus-electric/style.mddoc570 bytesreference/styles/vivid--candy-stripe/build.shruns15,573 bytesreference/styles/vivid--candy-stripe/style.mddoc3,910 bytesreference/styles/vivid--candy-stripe/vivid__candy_stripe.pptxasset13,486 bytesreference/styles/vivid--energy-neon/style.mddoc2,779 bytesreference/styles/vivid--pink-editorial/style.mddoc4,159 bytesreference/styles/vivid--playful-marketing/build.shruns35,671 bytesreference/styles/vivid--playful-marketing/style.mddoc2,627 bytesreference/styles/vivid--playful-marketing/vivid__playful_marketing.pptxasset14,263 bytesreference/styles/warm--bloom-academy/style.mddoc691 bytesreference/styles/warm--brand-refresh/build.shruns14,858 bytesreference/styles/warm--brand-refresh/style.mddoc2,047 bytesreference/styles/warm--brand-refresh/warm__brand_refresh.pptxasset13,928 bytesreference/styles/warm--coral-culture/style.mddoc609 bytesreference/styles/warm--earth-organic/build.shruns19,000 bytesreference/styles/warm--earth-organic/style.mddoc5,255 bytesreference/styles/warm--earth-organic/warm__earth_organic.pptxasset17,558 bytesreference/styles/warm--monument-editorial/style.mddoc643 bytesreference/styles/warm--playful-organic/Cat-Secret-Life.pptxasset21,566 bytesreference/styles/warm--playful-organic/build.shruns15,915 bytesreference/styles/warm--playful-organic/style.mddoc2,631 bytesreference/styles/warm--sunset-mosaic/style.mddoc648 bytesreference/styles/warm--vital-bloom/style.mddoc571 bytes
Read SKILL.md
# OfficeCLI Morph-PPT Skill
**This skill is a scene layer on top of `officecli-pptx`.** Every pptx hard rule — visual delivery floor (title ≥ 36pt / body ≥ 18pt / title ≥ 2× body), 12-column grid on 33.87×19.05cm, canonical palettes, chart-choice decision table, connector canon, shell escape, resident + batch, Delivery Gate 1–5a — is inherited, not re-taught. This file adds only what **Morph** needs on top: cross-slide shape-name binding, Scene Actors vs content prefixing, ghost discipline, `transition=morph` CLI quirks, 52-style visual library lookup, and a morph-specific fresh-eyes Gate 5b extension.
When the pptx base rules cover it, the text here says `→ see pptx v2 §X`. Read `skills/officecli-pptx/SKILL.md` first if you have not.
## Setup
If `officecli` is missing:
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash`
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex`
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases.View the complete source on GitHubmorph-ppt-3d
When your agent uses it
3D Morph PPT — extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system.
What it loads into context
Frontmatter
41 tokensAlways available to the agent
SKILL.md
7,049 tokensWhen the skill is activated
Reference documents
3,710 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Setup
- Use when
- 3D Model Compatibility Gate (before generation)
- Model Discovery Flow (when user has no model)
- Visual Design System (4.0 enrichment)
- 3D Model Insertion Rules
- Model-Content Layout
- Camera Language
- Workflow Integration with morph-ppt
- File Placement Rule
Files
SKILL.mdcore25,711 bytesSKILL.mdcore25,711 bytesSKILL.mdcore25,711 bytesSKILL.mdcore25,711 bytesSKILL.mdcore25,711 bytesSKILL.mdcore25,711 bytesSKILL.mdcore25,711 bytesSKILL.mdcore25,711 bytesSKILL.mdcore25,711 bytesSKILL.mdcore25,711 bytesSKILL.mdcore25,711 bytesSKILL.mdcore25,711 bytes../morph-ppt/reference/styles/INDEX.mddoc17,649 bytes
Read SKILL.md
# Morph PPT — 3D Extension
This skill **extends** `morph-ppt`. All morph-ppt rules (naming, ghosting, design, verification) apply in full.
This file covers **3D-specific additions** and an **enriched design system** combining morph-ppt aesthetics with concrete color palettes, font pairings, and layout quality guardrails.
---
## Setup
If `officecli` is missing:
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash`
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex`
View the complete source on GitHubofficecli
When your agent uses it
Create, analyze, proofread, and modify Office documents (.docx, .xlsx, .pptx) using the officecli CLI tool. Use when the user wants to create, inspect, check formatting, find issues, add charts, or modify Office documents.
What it loads into context
Frontmatter
60 tokensAlways available to the agent
SKILL.md
6,978 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Install
- Strategy
- Help System (IMPORTANT)
- Performance: Resident Mode
- Quick Start
- L1: Create, Read & Inspect
- Watch & Interactive Selection
- L2: DOM Operations
- L3: Raw XML
- Common Pitfalls
- Specialized Skills
- Notes
Files
SKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytesSKILL.mdcore25,974 bytes
Read SKILL.md
# officecli
AI-friendly CLI for .docx, .xlsx, .pptx. Single binary, no dependencies, no Office installation needed.
## Install
If `officecli` is not installed:
```bash
# macOS / Linux
curl -fsSL https://d.officecli.ai/install.sh | bash
# Windows (PowerShell)
irm https://d.officecli.ai/install.ps1 | iexView the complete source on GitHubofficecli-academic-paper
When your agent uses it
Use this skill to build academic-style .docx output: journal / conference / thesis chapters carrying formal citation style (APA, Chicago, IEEE, MLA), numbered equations, figure & table cross-references, footnotes/endnotes, bibliography, or multi-column journal layout. Trigger on: 'research paper', 'journal paper', 'conference paper', 'manuscript', 'thesis', 'APA', 'MLA', 'Chicago', 'IEEE two-column', 'bibliography', 'hanging indent', 'citation style', 'abstract + keywords', 'equation numbering', 'cross-reference', paper with footnotes/endnotes. Output is a single .docx.
What it loads into context
Frontmatter
146 tokensAlways available to the agent
SKILL.md
11,868 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Setup
- ⚠<U+FE0F> Help-First Rule
- Mental Model & Inheritance
- Shell & Execution Discipline
- What "academic" means here (identity)
- Workflow — 5 verbs
- Requirements (academic floor on top of docx v2)
- Quick Start — minimal APA paper
- Citation style recipes
- Equations (OMML — inline vs display)
- Figures, tables, and cross-references (SEQ + PAGEREF)
- Footnotes vs endnotes
- Bibliography section
- Multi-column (IEEE journal two-column recipe)
- Abstract / keywords / affiliation block
- QA — Delivery Gate (executable)
- Known Issues & Pitfalls (academic-specific)
- Renderer quirks (cross-viewer)
- Help pointer
Files
SKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytesSKILL.mdcore45,705 bytes
Read SKILL.md
# OfficeCLI Academic Paper Skill
**This skill is a scene layer on top of `officecli-docx`.** Every docx hard rule — style architecture, heading hierarchy, shell quoting, page-break rules, live PAGE field, Delivery Gate, renderer quirks — is inherited, not re-taught. This file adds only what academic papers need on top: citation styles, equations, SEQ / PAGEREF cross-refs, multi-column journal layout, bibliography hanging indent, abstract/keywords/affiliation block.
When the docx base rules cover it, the text here says `→ see docx v2 §X`. Read docx v2 first if you have not.
## Setup
If `officecli` is missing:
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash`
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex`
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases.View the complete source on GitHubofficecli-data-dashboard
When your agent uses it
Use this skill to build a multi-element Excel dashboard — Dashboard sheet on open, multiple formula-driven KPI cards, multiple charts, sparklines, and conditional formatting — from CSV or tabular input. Trigger on: 'dashboard', 'KPI dashboard', 'analytics dashboard', 'executive dashboard', 'metrics dashboard', 'CSV to dashboard', 'data visualization'. Output is a single .xlsx. Scene-layer on officecli-xlsx: inherits every xlsx hard rule. DO NOT invoke for: a single budget tracker / one-sheet CSV-with-formatting (use xlsx), a 3-statement / DCF / LBO financial model (use financial-model), a weekly report with at most 1 chart and fewer than 10 rows (use xlsx).
What it loads into context
Frontmatter
164 tokensAlways available to the agent
SKILL.md
8,354 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Setup
- ⚠<U+FE0F> Help-First Rule
- Mental Model & Inheritance
- Shell & Execution Discipline
- Core Principles
- Requirements
- Quick Start
- Design Ideas
- QA (REQUIRED — Delivery Gate)
- Reference
- Known Issues & Pitfalls
Files
SKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytesSKILL.mdcore29,886 bytes
Read SKILL.md
# Data Dashboard (scene-layer on officecli-xlsx)
A dashboard is not "a spreadsheet with charts". It is a composition: **one Dashboard sheet the user lands on** with formula-driven KPI cards, cell-range-linked charts, sparklines, and semantic conditional formatting. Everything else (raw data, aggregations) is upstream infrastructure the user should never need to open. This skill teaches the composition pattern. Everything about the xlsx engine — cells, formulas, batch JSON, shell quoting, validate, HTML preview — comes from `officecli-xlsx` and is not re-taught here.
## Setup
If `officecli` is missing:
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash`
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex`
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases.
## ⚠<U+FE0F> Help-First RuleView the complete source on GitHubofficecli-docx
When your agent uses it
Use this skill any time a .docx file is involved -- as input, output, or both. This includes: creating Word documents, reports, letters, memos, or proposals; reading, parsing, or extracting text from any .docx file; editing, modifying, or updating existing documents; working with templates, tracked changes, comments, headers/footers, or tables of contents. Trigger whenever the user mentions 'Word doc', 'document', 'report', 'letter', 'memo', or references a .docx filename.
What it loads into context
Frontmatter
119 tokensAlways available to the agent
SKILL.md
11,723 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Setup
- ⚠<U+FE0F> Help-First Rule
- Mental Model
- Shell & Execution Discipline
- Requirements for Outputs
- Common Workflow
- Quick Start
- Reading & Analysis
- Creating & Editing
- QA (Required)
- Known Issues & Pitfalls
- Raw-set XML appendix (L3 patterns)
Files
SKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytesSKILL.mdcore43,199 bytes
Read SKILL.md
# OfficeCLI DOCX Skill
## Setup
If `officecli` is missing:
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash`
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex`
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases.
## ⚠<U+FE0F> Help-First Rule
**This skill teaches what good docx looks like, not every command flag. When a property name, enum value, or alias is uncertain, consult help BEFORE guessing.**View the complete source on GitHubofficecli-financial-model
When your agent uses it
Use this skill when the user wants to build a financial model — 3-statement model, DCF valuation, LBO, SaaS unit economics, sensitivity / scenario analysis, debt schedule, or fundraising projections — in Excel. Trigger on: 'financial model', '3-statement model', 'P&L + BS + CF', 'DCF', 'WACC', 'NPV', 'terminal value', 'LBO', 'debt schedule', 'cash sweep', 'MOIC', 'IRR / XIRR', 'sensitivity table', 'scenario analysis', 'ARR model', 'unit economics', 'CAC / LTV', 'cap table forecast'. Output is a single formula-driven .xlsx. This skill is a scene layer on top of officecli-xlsx — it inherits every xlsx v2 rule (4-color code, visual floor, number formats, cache-drift, Known Issues, Delivery Gate minimum cycle). DO NOT invoke for a simple budget tracker, CSV dump, or operational KPI sheet — route those to officecli-xlsx base.
What it loads into context
Frontmatter
227 tokensAlways available to the agent
SKILL.md
13,750 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Setup
- Help-First Rule
- Mental Model & Inheritance
- Shell & Execution Discipline
- Core Principles (identity)
- Three-zone architecture (hard rule)
- Print delivery (board / IC / LP)
- Build-order & cache-drift rule (critical for 3-statement)
- Recipes — three model types
- Sensitivity & scenarios
- Financial function patterns
- Circular references & iterative calc
- Audit & Delivery Gate
- Known Issues & Pitfalls
- Help pointer
Files
SKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytesSKILL.mdcore48,112 bytes
Read SKILL.md
# OfficeCLI Financial-Model Skill
**This skill is a scene layer on top of `officecli-xlsx`.** Every xlsx hard rule — shell quoting, incremental execution, Help-First Rule, visual delivery floor, CFO 4-color code (blue input / black formula / green cross-sheet / yellow-fill assumption), number-format standards (years as text, zero as `-`, `%` one decimal, negatives in parens), assumption-cell discipline, CSV batch import, chart data-feed forms (a/b/c), the 5-gate Delivery cycle, cache-drift guidance, Known Issues (the cross-sheet `!` trap, batch + resident for formulas, renderer caveats) — is **inherited, not re-taught**. This file adds only what a **financial model** requires on top: three-zone architecture, 3 model-type recipes (3-statement / DCF / LBO), sensitivity + scenario protocols, financial-function patterns, circular-reference discipline, and model-specific Delivery Gates 4–6.
When the xlsx base rules cover it, the text here says `→ see xlsx v2 §X`. Read `skills/officecli-xlsx/SKILL.md` first if you have not.
## Setup
If `officecli` is missing:
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash`
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex`
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases.View the complete source on GitHubofficecli-pitch-deck
When your agent uses it
Use this skill when the user is building a fundraising / investor pitch deck — seed, Series A / B / C, convertible note, SAFE round, strategic raise. Trigger on: 'pitch deck', 'investor deck', 'Series A deck', 'Series B deck', 'Series C deck', 'fundraising deck', 'seed pitch', 'VC deck', 'raising capital', 'term sheet presentation'. Output is a single .pptx. This skill is a scene layer on top of officecli-pptx — inherits every pptx v2 rule (visual floor, grid, palettes, connector canon, Delivery Gate). DO NOT invoke for a generic board review, sales deck, all-hands, or product launch — route those to officecli-pptx base.
What it loads into context
Frontmatter
168 tokensAlways available to the agent
SKILL.md
19,502 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Setup
- ⚠<U+FE0F> Help-First Rule
- Mental Model & Inheritance
- Shell & Execution Discipline
- What "pitch deck" means here (identity)
- Series A / B / C stage diagnosis (decision tool)
- 赛道 arc templates (5 families)
- Slide Patterns (layout canon)
- Key-slide recipes (10 essentials)
- Numbers convention (pitch-specific)
- VC ship-check (6 red flags / positive signals)
- Traction triple-pattern (ARR + milestones + logos)
- QA — Delivery Gate (executable)
- Known Issues & Pitfalls
- Help pointer
Files
SKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytesSKILL.mdcore66,735 bytes
Read SKILL.md
# OfficeCLI Pitch Deck Skill
**This skill is a scene layer on top of `officecli-pptx`.** Every pptx hard rule — visual delivery floor (title ≥ 36pt / body ≥ 18pt / title ≥ 2× body), 12-column grid on 33.87×19.05cm, 4 canonical palettes, chart-choice decision table, connector canon (`shape` / `from` / `to` / `tailEnd=triangle`), shell escape, resident + batch, Delivery Gate 1–5a — is inherited, not re-taught. This file adds only what **fundraising** needs on top: stage diagnosis (A / B / C), 5 赛道 arc templates, 10 key-slide recipes (cover / problem / solution / market / product / model / traction / team / financials / ask), pitch-specific numbers convention, a VC ship-check, and a pitch-specific fresh-eyes Gate 6.
When the pptx base rules cover it, the text here says `→ see pptx v2 §X`. Read `skills/officecli-pptx/SKILL.md` first if you have not.
## Setup
If `officecli` is missing:
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash`
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex`
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases.View the complete source on GitHubofficecli-pptx
When your agent uses it
Use this skill any time a .pptx file is involved -- as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file; editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes, or comments. Trigger whenever the user mentions 'deck', 'slides', 'presentation', 'pitch', or references a .pptx filename.
What it loads into context
Frontmatter
111 tokensAlways available to the agent
SKILL.md
12,269 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Setup
- ⚠<U+FE0F> Help-First Rule
- Shell & Execution Discipline
- Requirements for Outputs
- Design Principles
- Common Workflow
- Quick Start
- Reading & Analysis
- Creating & Editing
- QA (Required)
- Common Pitfalls
Files
SKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytesSKILL.mdcore44,849 bytes
Read SKILL.md
# OfficeCLI PPTX Skill
## Setup
If `officecli` is missing:
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash`
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex`
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases.
## ⚠<U+FE0F> Help-First Rule
**This skill teaches what good slides look like, not every command flag. When a property name, enum value, or alias is uncertain, consult help BEFORE guessing.**View the complete source on GitHubofficecli-word-form
When your agent uses it
Use this skill to create fillable Word forms (.docx) with real Content Controls (SDT) + legacy FormField checkboxes + MERGEFIELD mail-merge placeholders + document protection. Trigger on: 'fillable form', 'form fields', 'content controls', 'SDT', 'word form', 'fill in', 'only editable fields', 'protect document', 'onboarding form', 'HR intake', 'survey template', 'contract / SOW template', 'mail-merge template', 'compliance checklist', 'medical intake questionnaire'. Output is a single .docx where specific fields are editable and the rest is locked. This skill is INDEPENDENT, not a scene layer on docx — payload is `w:sdt` + `w:ffData` + `w:fldChar` + `documentProtection`, none of which docx base skill covers. Do NOT trigger for regular reports, letters, memos, academic papers, pitch decks, or any document with no user-fillable fields — route those to officecli-docx or its scene layers.
What it loads into context
Frontmatter
229 tokensAlways available to the agent
SKILL.md
12,789 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- BEFORE YOU START (CRITICAL)
- Help-First Rule
- Mental Model & Inheritance
- Shell & Execution Discipline
- What makes a real form (identity)
- Requirements for Outputs (hard floor)
- Three Paths (core decision)
- Quick Start — Path A + FormField (minimal intake form)
- Path B — raw-set recipes
- Path C — Word template workflow
- MERGEFIELD (data-driven track)
- Legacy FormField
- Document protection & lock
- Recipe — Contract / SOW template with MERGEFIELD + signature
- Design principles (forms)
- Batch mode (brief)
- Delivery Gate (executable)
- Known Issues
- Phase 2 — enhance in Word
- Help pointer
Files
SKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytesSKILL.mdcore46,994 bytes
Read SKILL.md
# OfficeCLI Word-Form Skill
**This skill is INDEPENDENT, not a scene layer on docx.** A form's payload — `<w:sdt>` controls, `<w:ffData>` legacy fields, `<w:fldChar>` mail-merge, `documentProtection` — is a distinct element class from docx's paragraph/heading/style primitives. Its QA is different too: docx's Delivery Gate cares about visual layout and live PAGE fields, this skill's cares about data plumbing (protection enforced / alias+tag / items injected / name ≤ 20 / no underscore anti-pattern). **Reverse handoff:** if the user's document has no fillable fields (report, letter, memo, thesis, proposal), route to `officecli-docx` or a docx scene skill — don't use this one.
## BEFORE YOU START (CRITICAL)
**If `officecli` is not installed:**
`macOS / Linux`
```bash
if ! command -v officecli >/dev/null 2>&1; then
curl -fsSL https://d.officecli.ai/install.sh | bash
fiView the complete source on GitHubofficecli-xlsx
When your agent uses it
Use this skill any time a .xlsx file is involved -- as input, output, or both. This includes: creating spreadsheets, financial models, dashboards, or trackers; reading, parsing, or extracting data from any .xlsx file; editing, modifying, or updating existing workbooks; working with formulas, charts, pivot tables, or templates; importing CSV/TSV data into Excel format. Trigger whenever the user mentions 'spreadsheet', 'workbook', 'Excel', 'financial model', 'tracker', 'dashboard', or references a .xlsx/.csv filename.
What it loads into context
Frontmatter
124 tokensAlways available to the agent
SKILL.md
9,228 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Setup
- ⚠<U+FE0F> Help-First Rule
- Shell & Execution Discipline
- Requirements for Outputs
- Common Workflow
- Quick Start
- CSV / bulk import
- Reading & Analysis
- Creating & Editing
- Chart Axis-by-Role
- QA (Required)
- Known Issues & Pitfalls
Files
SKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytesSKILL.mdcore35,502 bytes
Read SKILL.md
# OfficeCLI XLSX Skill
## Setup
If `officecli` is missing:
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash`
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex`
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases.
## ⚠<U+FE0F> Help-First Rule
**This skill teaches what good xlsx looks like, not every command flag. When a property name, enum value, or alias is uncertain, consult help BEFORE guessing.**View the complete source on GitHubSkills included
- officecli
- morph-ppt
- morph-ppt-3d
- officecli
- officecli-academic-paper
- officecli-data-dashboard
- officecli-docx
- officecli-financial-model
- officecli-pitch-deck
- officecli-pptx
- officecli-word-form
- officecli-xlsx
Repository facts
- License
- Apache-2.0
- Created
- Mar 15, 2026
- Last pushed
- Oct 30, 2026
- Forks
- 2,258
- Open issues
- 40
- Project activity
- Active
Rank over the last 12 weeks
Now #62 · best #55 · down 3 in 30 days
- #62 on Oct 24
- #63 on Oct 25
- #61 on Oct 28
- #62 on Oct 29
- #63 from Oct 30 to Oct 31
- #62 since Nov 1
19 earlier periods
- #63 on Aug 2
- #58 from Aug 7 to Aug 9
- #57 on Aug 10
- #56 on Aug 11
- #55 from Aug 12 to Aug 17
- #56 from Aug 18 to Aug 25
- #57 from Aug 26 to Aug 28
- #58 from Aug 29 to Sep 1
- #59 from Sep 2 to Sep 6
- #58 on Sep 7
- #59 from Sep 8 to Sep 12
- #60 from Sep 13 to Sep 17
- #59 from Sep 18 to Sep 19
- #60 on Sep 20
- #59 on Sep 21
- #60 from Sep 22 to Sep 24
- #59 from Sep 25 to Oct 7
- #60 from Oct 8 to Oct 18
- #61 from Oct 19 to Oct 23
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 4, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 284 notes
SKILL.md:263Analysis incomplete: physical or joined line exceeds character limitSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 192 dangerous shell commandsin 147 files: .github/workflows/build.yml:84 .oss-scanner/Dockerfile:11 README.md:91 and 144 more
- 2,007 network referencesin 440 files: README.md:11 README_zh.md:11 README_ja.md:11 and 437 more
- 23 obfuscation signalsin 15 files: src/officecli/Core/ParseHelpers.cs:377 src/officecli/CommandBuilder.Batch.cs:341 src/officecli/Handlers/Pptx/PowerPointHandler.Comments.cs:98 and 12 more
- No instruction overrides
- 229 executable scriptsin 229 files: .oss-scanner/Dockerfile:1 build.sh:1 dev-install.sh:1 and 226 more
- 10 references to secretsin 2 files: .github/workflows/build.yml:71 sdk/python/officecli.py:103
- No requests to vote in Hot
Show all 2,461 signals by file
.github/workflows/build.yml
- Access to secretsline 71
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 83
[Credential-related source omitted] - Dangerous shell operationline 84
rm -f "$CERT_PATH" - Dangerous shell operationline 118
rm -f "$RUNNER_TEMP/notarize.zip" - Dangerous shell operationline 138
rm -f test_smoke.docx - Dangerous shell operationline 223
rm -rf artifacts
.github/workflows/publish-npm.yml
.github/workflows/publish-pypi.yml
- Network accessline 42
VERSION=$(python -c "import tomllib;print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])") echo "Publishing candidate: $NAME==$VERSION" CODE=$(curl -s -o /dev/null -w '%{http_code}' "https://pypi.org/py - Network accessline 43
echo "Publishing candidate: $NAME==$VERSION" CODE=$(curl -s -o /dev/null -w '%{http_code}' "https://pypi.org/pypi/$NAME/$VERSION/json") if [ "$CODE" = "200" ]; then - Network accessline 44
CODE=$(curl -s -o /dev/null -w '%{http_code}' "https://pypi.org/pypi/$NAME/$VERSION/json")
.github/workflows/publish-sdk.yml
.github/workflows/skill-parity.yml
- Network accessline 3
# Root SKILL.md is the file the public URL serves # (https://d.officecli.ai/SKILL.md, raw GitHub URL) and is what # `curl ... | bash` consumers fetch. skills/officecli/SKILL.md is a real - Network accessline 4
# (https://d.officecli.ai/SKILL.md, raw GitHub URL) and is what # `curl ... | bash` consumers fetch. skills/officecli/SKILL.md is a real # copy of it — the spec-conforming location that `gh skill install` and - Dangerous shell operationline 5
# `curl ... | bash` consumers fetch. skills/officecli/SKILL.md is a real - Network accessline 5
# `curl ... | bash` consumers fetch. skills/officecli/SKILL.md is a real
.oss-scanner/Dockerfile
- Executable scriptline 1
Executable file - Dangerous shell operationline 11
RUN apt-get update && apt-get install -y --no-install-recommends bash ca-certificates git python3 unzip && rm -rf /var/lib/apt/lists/* - Dangerous shell operationline 13
&& rm -rf /var/lib/apt/lists/* - Dangerous shell operationline 25
RUN cd /tmp && (officecli create test_smoke.docx && officecli add test_smoke.docx /body --type paragraph --prop text="Hello from CI" && officecli get test_smoke.docx '/body/p[1]' && officecli close test_smoke - Dangerous shell operationline 31
&& rm -f test_smoke.docx
LICENSE
NOTICE
- Network accessline 1
OfficeCLI Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 2
Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 6
This product is licensed under the Apache License, Version 2.0. You may obtain a copy of the License in the LICENSE file or at http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 8
http://www.apache.org/licenses/LICENSE-2.0
README.md
- Network accessline 11
[](https://github.com/iOfficeAI/OfficeCLI/releases) - Network accessline 12
[](LICENSE) - Network accessline 16
<p align="center"> <strong>🌐 Website:</strong> <a href="https://officecli.ai" target="_blank">officecli.ai</a> | <strong>💬 Community:</strong> <a href="https://discord.gg/2QAwJn7Egx" target="_blank">Discord</a> - Network accessline 17
<strong>🌐 Website:</strong> <a href="https://officecli.ai" target="_blank">officecli.ai</a> | <strong>💬 Community:</strong> <a href="https://discord.gg/2QAwJn7Egx" target="_blank">Discord</a> - Network accessline 24
<p align="center"><em>PPT creation process using OfficeCLI on <a href="https://github.com/iOfficeAI/AionUi">AionUi</a></em></p> - Network accessline 70
curl -fsSL https://officecli.ai/SKILL.md - Network accessline 77
**Option A — GUI:** Install [**AionUi**](https://github.com/iOfficeAI/AionUi) — a desktop app that lets you create and edit Office documents through natural language, powered by OfficeCLI under the hood. Just describe what you want, and Aio - Network accessline 79
**Option B — CLI:** Download the binary for your platform from [GitHub Releases](https://github.com/iOfficeAI/OfficeCLI/releases), then run: - Network accessline 90
# 1. Install (macOS / Linux) — or: brew install officecli / npm install -g @officecli/officecli curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Dangerous shell operationline 91
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 91
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 92
# Windows (PowerShell): irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 97
# 3. Start live preview — opens http://localhost:26315 in your browser - Network accessline 179
**Word** — full [i18n & RTL support](https://github.com/iOfficeAI/OfficeCLI/wiki/i18n) (per-script font slots, per-script BCP-47 lang tags `lang.latin/ea/cs`, complex-script bold/italic/size, `direction=rtl` cascading through paragraph/run/ - Network accessline 181
**Excel** — [cells](https://github.com/iOfficeAI/OfficeCLI/wiki/excel-cell) (phonetic guide / furigana on add, Excel-UI `--shift left\|up` on remove / `shift=right\|down` on add), formulas (350+ built-in functions with auto-evaluation, spil - Network accessline 183
**PowerPoint** — [slides](https://github.com/iOfficeAI/OfficeCLI/wiki/ppt-slide) (header/footer/date/slidenum toggles, hidden), [shapes](https://github.com/iOfficeAI/OfficeCLI/wiki/ppt-shape) (pattern fill, blur effect, hyperlink tooltip + - Network accessline 209
# macOS / Linux curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Dangerous shell operationline 210
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 210
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 212
# Windows (PowerShell) irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 213
irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 229
**Or download manually** from [GitHub Releases](https://github.com/iOfficeAI/OfficeCLI/releases): - Network accessline 266
officecli view deck.pptx html -o /tmp/deck.html officecli view deck.pptx screenshot -o /tmp/deck.png # add --page 1-N for more slides officecli watch deck.pptx # http://localhost:26315 - Network accessline 268
officecli watch deck.pptx # http://localhost:26315 - Network accessline 337
> python my_reader.py report.docx # now sees the edit > ``` > A live resident also auto‑flushes shortly after going idle (adaptive 2–10s, scaled to the document's measured save cost). For a pipeline where another program reads after ev - Network accessline 339
> A live resident also auto‑flushes shortly after going idle (adaptive 2–10s, scaled to the document's measured save cost). For a pipeline where another program reads after every command, set `OFFICECLI_RESIDENT_FLUSH=each` — every mutation - Network accessline 372
Built-in [MCP](https://modelcontextprotocol.io) server — register with one command: - Network accessline 400
curl -fsSL https://officecli.ai/SKILL.md - Network accessline 406
curl -fsSL https://officecli.ai/SKILL.md -o ~/.claude/skills/officecli.md - Network accessline 513
| Command | Description | |---------|-------------| | [`create`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-create) | Create a blank .docx, .xlsx, or .pptx (type from extension) | - Network accessline 514
|---------|-------------| | [`create`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-create) | Create a blank .docx, .xlsx, or .pptx (type from extension) | | [`view`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-view) | View c - Network accessline 515
| [`create`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-create) | Create a blank .docx, .xlsx, or .pptx (type from extension) | - Network accessline 516
| [`view`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-view) | View content (modes: `outline`, `text`, `annotated`, `stats` (`--page-count`), `issues`, `html`, `svg`, `screenshot`, `pdf` (via exporter plugin), `forms` (via format-ha - Network accessline 517
| [`load_skill`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-skills) | Print embedded SKILL.md content for a specialized skill (no install) | - Network accessline 518
| [`get`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-get) | Get element and children (`--depth N`, `--json`) | - Network accessline 519
| [`query`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-query) | CSS-like query with boolean `and`/`or`, row-by-column-name (`row[Salary>5000]`), `--find` flag | - Network accessline 520
| [`set`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-set) | Modify element properties; accepts selectors and Excel-native paths (parity with `get`/`query`), `--find`/`--replace` flags | - Network accessline 521
| [`add`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-add) | Add element (or clone with `--from <path>`) | - Network accessline 522
| [`remove`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-remove) | Remove an element | - Network accessline 523
| [`move`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-move) | Move element (`--to <parent>`, `--index N`, `--after <path>`, `--before <path>`) | - Network accessline 524
| [`swap`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-swap) | Swap two elements | - Network accessline 525
| [`validate`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-validate) | Validate against OpenXML schema | - Network accessline 526
| `view <file> issues` | Enumerate document issues (text overflow, missing alt text, formula errors, ...) | | [`batch`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-batch) | Multiple operations applied in a single pass (stdin, `--inp - Network accessline 527
| [`batch`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-batch) | Multiple operations applied in a single pass (stdin, `--input`, or `--commands`; atomic by default — any failed item rolls back the whole batch — `--best-effort` to ke - Network accessline 528
| [`dump`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-dump) | Serialize a `.docx`, `.pptx`, or `.xlsx` into a replayable batch JSON (round-trip via `batch`); accepts a subtree path | - Network accessline 529
| [`refresh`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-refresh) | Recalculate TOC page numbers / `PAGE` / cross-references (`.docx`; Word backend on Windows, headless-HTML fallback) | - Network accessline 530
| [`plugins`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-plugins) | List / inspect / lint installed plugins (extend to `.doc`, `.hwpx`, `.pdf` export via dump-reader / exporter / format-handler kinds) | - Network accessline 531
| [`merge`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-merge) | Template merge — replace `{{key}}` placeholders with JSON data | - Network accessline 532
| [`watch`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-watch) | Live HTML preview in browser with auto-refresh | - Network accessline 533
| [`mcp`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-mcp) | Start MCP server for AI tool integration | - Network accessline 534
| [`raw`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-raw) | View raw XML of a document part | - Network accessline 535
| [`raw-set`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-raw) | Modify raw XML via XPath | - Network accessline 536
| `add-part` | Add a new document part (header, chart, etc.) | | [`open`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-open) | Start resident mode (keep document in memory) | | `close` | Save and close resident mode | - Network accessline 537
| [`open`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-open) | Start resident mode (keep document in memory) | - Network accessline 538
| `close` | Save and close resident mode | | [`install`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-install) | Install binary + skills + MCP (`all`, `claude`, `cursor`, etc.) | | `config` | Get or set configuration | - Network accessline 539
| [`install`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-install) | Install binary + skills + MCP (`all`, `claude`, `cursor`, etc.) | - Network accessline 541
| `help <format> <command>` | [Built-in help](https://github.com/iOfficeAI/OfficeCLI/wiki/command-reference) (e.g. `officecli help pptx set shape`) | - Network accessline 636
The [Wiki](https://github.com/iOfficeAI/OfficeCLI/wiki) has detailed guides for every command, element type, and property: - Network accessline 638
- **By format:** [Word](https://github.com/iOfficeAI/OfficeCLI/wiki/word-reference) | [Excel](https://github.com/iOfficeAI/OfficeCLI/wiki/excel-reference) | [PowerPoint](https://github.com/iOfficeAI/OfficeCLI/wiki/powerpoint-reference) - Network accessline 639
- **Workflows:** [End-to-end examples](https://github.com/iOfficeAI/OfficeCLI/wiki/workflows) -- Word reports, Excel dashboards, PowerPoint decks, batch modifications, resident mode - Network accessline 640
- **Runnable examples:** [examples/](examples/) -- copy-paste scripts (.sh/.py) for Word, Excel, and PowerPoint, with output files included - **Troubleshooting:** [Common errors and solutions](https://github.com/iOfficeAI/OfficeCLI/wiki/tro - Network accessline 641
- **Troubleshooting:** [Common errors and solutions](https://github.com/iOfficeAI/OfficeCLI/wiki/troubleshooting) - Network accessline 642
- **AI agent guide:** [Decision tree for navigating the wiki](https://github.com/iOfficeAI/OfficeCLI/wiki/agent-guide) - Network accessline 646
Requires [.NET 10 SDK](https://dotnet.microsoft.com/download) for compilation only. The output is a self-contained, native binary -- .NET is embedded in the binary and is not needed at runtime. - Network accessline 656
Bug reports and contributions are welcome on [GitHub Issues](https://github.com/iOfficeAI/OfficeCLI/issues). - Network accessline 660
If you find OfficeCLI useful, please [give it a star on GitHub](https://github.com/iOfficeAI/OfficeCLI) — it helps others discover the project. - Network accessline 662
[OfficeCLI.AI](https://OfficeCLI.AI) | [GitHub](https://github.com/iOfficeAI/OfficeCLI) - Dangerous shell operationline 677
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 677
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 678
install-command-windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 694
skill-file-lines: 403 alternatives: python-docx, openpyxl, python-pptx, libreoffice --headless install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 695
alternatives: python-docx, openpyxl, python-pptx, libreoffice --headless install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash install-command-windows: irm https://raw.githubuserconten - Dangerous shell operationline 696
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 696
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 697
install-command-windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex
README_ja.md
- Network accessline 11
[](https://github.com/iOfficeAI/OfficeCLI/releases) - Network accessline 12
[](LICENSE) - Network accessline 16
<p align="center"> <strong>🌐 公式サイト:</strong> <a href="https://officecli.ai" target="_blank">officecli.ai</a> | <strong>💬 コミュニティ:</strong> <a href="https://discord.gg/2QAwJn7Egx" target="_blank">Discord</a> - Network accessline 17
<strong>🌐 公式サイト:</strong> <a href="https://officecli.ai" target="_blank">officecli.ai</a> | <strong>💬 コミュニティ:</strong> <a href="https://discord.gg/2QAwJn7Egx" target="_blank">Discord</a> - Network accessline 24
<p align="center"><em><a href="https://github.com/iOfficeAI/AionUi">AionUi</a> で OfficeCLI を使った PPT 作成プロセス</em></p> - Network accessline 70
curl -fsSL https://officecli.ai/SKILL.md - Network accessline 77
**オプション A — GUI:** [**AionUi**](https://github.com/iOfficeAI/AionUi) をインストール — 自然言語で Office 文書を作成・編集できるデスクトップアプリ。内部で OfficeCLI が動いています。やりたいことを説明するだけで、AionUi がすべて処理します。 - Network accessline 79
**オプション B — CLI:** [GitHub Releases](https://github.com/iOfficeAI/OfficeCLI/releases) からお使いのプラットフォーム用バイナリをダウンロードして、以下を実行: - Network accessline 90
# 1. インストール(macOS / Linux)— または: brew install officecli / npm install -g @officecli/officecli curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Dangerous shell operationline 91
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 91
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 92
# Windows (PowerShell): irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 97
# 3. ライブプレビューを開始 — ブラウザで http://localhost:26315 が開きます - Network accessline 176
**Word** — 完全な [i18n & RTL サポート](https://github.com/iOfficeAI/OfficeCLI/wiki/i18n)(スクリプト別フォントスロット、スクリプト別 BCP-47 言語タグ `lang.latin/ea/cs`、複雑スクリプトの太字/斜体/サイズ、段落/ラン/セクション/表/スタイル/ヘッダー/フッター/docDefaults をカスケードする `direction=rtl`、`rtlGutter` + `pgBor - Network accessline 178
**Excel** — [セル](https://github.com/iOfficeAI/OfficeCLI/wiki/excel-cell)(追加時にふりがな対応)、数式(150以上の組み込み関数を自動計算、動的配列関数に `_xlfn.` 自動プレフィックス)、[シート](https://github.com/iOfficeAI/OfficeCLI/wiki/excel-sheet)(visible/hidden/veryHidden、印刷余白、printTitleRo - Network accessline 180
**PowerPoint** — [スライド](https://github.com/iOfficeAI/OfficeCLI/wiki/ppt-slide)(ヘッダー/フッター/日付/スライド番号トグル、非表示)、[図形](https://github.com/iOfficeAI/OfficeCLI/wiki/ppt-shape)(パターン塗りつぶし、ぼかし効果、ハイパーリンクツールチップ + スライドジャンプリンク)、[画像](https://github.com/iOff - Network accessline 206
# macOS / Linux curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Dangerous shell operationline 207
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 207
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 209
# Windows (PowerShell) irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 210
irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 226
**または手動ダウンロード** [GitHub Releases](https://github.com/iOfficeAI/OfficeCLI/releases): - Network accessline 263
officecli view deck.pptx html -o /tmp/deck.html officecli view deck.pptx screenshot -o /tmp/deck.png # 複数ページは --page 1-N officecli watch deck.pptx # http://localhost:26315 - Network accessline 265
officecli watch deck.pptx # http://localhost:26315 - Network accessline 357
組み込み [MCP](https://modelcontextprotocol.io) サーバー — コマンド一つで登録: - Network accessline 384
curl -fsSL https://officecli.ai/SKILL.md - Network accessline 390
curl -fsSL https://officecli.ai/SKILL.md -o ~/.claude/skills/officecli.md - Network accessline 499
| コマンド | 説明 | |---------|------| | [`create`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-create) | 空白の .docx、.xlsx、.pptx を作成(拡張子からタイプを判定) | - Network accessline 500
|---------|------| | [`create`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-create) | 空白の .docx、.xlsx、.pptx を作成(拡張子からタイプを判定) | | [`view`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-view) | コンテンツを表示(モード:`outline`、`text`、`ann - Network accessline 501
| [`create`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-create) | 空白の .docx、.xlsx、.pptx を作成(拡張子からタイプを判定) | - Network accessline 502
| [`view`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-view) | コンテンツを表示(モード:`outline`、`text`、`annotated`、`stats`、`issues`、`html`) | - Network accessline 503
| [`get`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-get) | 要素と子要素を取得(`--depth N`、`--json`) | - Network accessline 504
| [`query`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-query) | CSS スタイルのクエリ(`[attr=value]`、`:contains()`、`:has()` など) | - Network accessline 505
| [`set`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-set) | 要素のプロパティを変更 | - Network accessline 506
| [`add`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-add) | 要素を追加(または `--from <path>` でクローン) | - Network accessline 507
| [`remove`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-remove) | 要素を削除 | - Network accessline 508
| [`move`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-move) | 要素を移動(`--to <parent>`、`--index N`、`--after <path>`、`--before <path>`) | - Network accessline 509
| [`swap`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-swap) | 2つの要素を交換 | - Network accessline 510
| [`validate`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-validate) | OpenXML スキーマ検証 | - Network accessline 511
| [`batch`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-batch) | 一度の open/save サイクルで複数操作を実行(stdin、`--input`、または `--commands`;デフォルトで最初のエラーで停止、`--force` で続行) | - Network accessline 512
| [`merge`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-merge) | テンプレートマージ — `{{key}}` プレースホルダーを JSON データで置換 | - Network accessline 513
| [`watch`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-watch) | ブラウザでライブ HTML プレビュー、自動更新 | - Network accessline 514
| [`mcp`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-mcp) | AI ツール統合用の MCP サーバーを起動 | - Network accessline 515
| [`raw`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-raw) | ドキュメントパートの生 XML を表示 | - Network accessline 516
| [`raw-set`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-raw) | XPath で生 XML を変更 | - Network accessline 517
| `add-part` | 新しいドキュメントパート(ヘッダー、チャートなど)を追加 | | [`open`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-open) | レジデントモードを開始(ドキュメントをメモリに保持) | | `close` | 保存してレジデントモードを終了 | - Network accessline 518
| [`open`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-open) | レジデントモードを開始(ドキュメントをメモリに保持) | - Network accessline 519
| `close` | 保存してレジデントモードを終了 | | [`install`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-install) | バイナリ + スキル + MCP をインストール(`all`、`claude`、`cursor` など) | | `config` | 設定の取得または変更 | - Network accessline 520
| [`install`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-install) | バイナリ + スキル + MCP をインストール(`all`、`claude`、`cursor` など) | - Network accessline 522
| `help <format> <command>` | [組み込みヘルプ](https://github.com/iOfficeAI/OfficeCLI/wiki/command-reference)(例:`officecli help pptx set shape`) | - Network accessline 601
[Wiki](https://github.com/iOfficeAI/OfficeCLI/wiki) に全コマンド、要素タイプ、プロパティの詳細ガイドがあります: - Network accessline 603
- **フォーマット別:**[Word](https://github.com/iOfficeAI/OfficeCLI/wiki/word-reference) | [Excel](https://github.com/iOfficeAI/OfficeCLI/wiki/excel-reference) | [PowerPoint](https://github.com/iOfficeAI/OfficeCLI/wiki/powerpoint-reference) - Network accessline 604
- **ワークフロー:**[エンドツーエンド例](https://github.com/iOfficeAI/OfficeCLI/wiki/workflows) -- Word レポート、Excel ダッシュボード、PPT プレゼン、一括変更、レジデントモード - Network accessline 605
- **トラブルシューティング:**[よくあるエラーと解決策](https://github.com/iOfficeAI/OfficeCLI/wiki/troubleshooting) - Network accessline 606
- **AI エージェントガイド:**[Wiki ナビゲーション決定木](https://github.com/iOfficeAI/OfficeCLI/wiki/agent-guide) - Network accessline 610
コンパイルには [.NET 10 SDK](https://dotnet.microsoft.com/download) が必要です。出力は自己完結型のネイティブバイナリ -- .NET は内蔵されているため、実行時にはインストール不要です。 - Network accessline 620
バグ報告やコントリビューションは [GitHub Issues](https://github.com/iOfficeAI/OfficeCLI/issues) まで。 - Network accessline 624
OfficeCLI が役に立ったら、ぜひ [GitHub でスターを付けてください](https://github.com/iOfficeAI/OfficeCLI) — より多くの人にプロジェクトを届ける力になります。 - Network accessline 626
[OfficeCLI.AI](https://OfficeCLI.AI) | [GitHub](https://github.com/iOfficeAI/OfficeCLI) - Network accessline 638
mcp-server: true skill-file: SKILL.md install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 639
skill-file: SKILL.md install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash install-command-windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Dangerous shell operationline 640
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 640
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 641
install-command-windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 656
skill-file: SKILL.md alternatives: python-docx, openpyxl, python-pptx, libreoffice --headless install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 657
alternatives: python-docx, openpyxl, python-pptx, libreoffice --headless install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash install-command-windows: irm https://raw.githubuserconten - Dangerous shell operationline 658
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 658
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 659
install-command-windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex
README_ko.md
- Network accessline 11
[](https://github.com/iOfficeAI/OfficeCLI/releases) - Network accessline 12
[](LICENSE) - Network accessline 16
<p align="center"> <strong>🌐 공식 웹사이트:</strong> <a href="https://officecli.ai" target="_blank">officecli.ai</a> | <strong>💬 커뮤니티:</strong> <a href="https://discord.gg/2QAwJn7Egx" target="_blank">Discord</a> - Network accessline 17
<strong>🌐 공식 웹사이트:</strong> <a href="https://officecli.ai" target="_blank">officecli.ai</a> | <strong>💬 커뮤니티:</strong> <a href="https://discord.gg/2QAwJn7Egx" target="_blank">Discord</a> - Network accessline 24
<p align="center"><em><a href="https://github.com/iOfficeAI/AionUi">AionUi</a>에서 OfficeCLI로 PPT 제작 과정</em></p> - Network accessline 70
curl -fsSL https://officecli.ai/SKILL.md - Network accessline 77
**옵션 A — GUI:** [**AionUi**](https://github.com/iOfficeAI/AionUi)를 설치하세요 — 자연어로 Office 문서를 만들고 편집할 수 있는 데스크톱 앱입니다. 내부적으로 OfficeCLI가 구동됩니다. 원하는 것을 설명하기만 하면 AionUi가 모든 것을 처리합니다. - Network accessline 79
**옵션 B — CLI:** [GitHub Releases](https://github.com/iOfficeAI/OfficeCLI/releases)에서 플랫폼에 맞는 바이너리를 다운로드한 후 실행: - Network accessline 90
# 1. 설치 (macOS / Linux) — 또는: brew install officecli / npm install -g @officecli/officecli curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Dangerous shell operationline 91
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 91
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 92
# Windows (PowerShell): irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 97
# 3. 라이브 미리보기 시작 — 브라우저에서 http://localhost:26315 이 열립니다 - Network accessline 176
**Word** — 완전한 [i18n 및 RTL 지원](https://github.com/iOfficeAI/OfficeCLI/wiki/i18n) (스크립트별 글꼴 슬롯, 스크립트별 BCP-47 언어 태그 `lang.latin/ea/cs`, 복합 스크립트 굵게/기울임/크기, 단락/런/섹션/표/스타일/머리글/바닥글/docDefaults에 캐스케이드되는 `direction=rtl`, `rtlGutter` + `pgBorders` 단 - Network accessline 178
**Excel** — [셀](https://github.com/iOfficeAI/OfficeCLI/wiki/excel-cell) (추가 시 음성 가이드/후리가나), 수식(150개 이상의 내장 함수 자동 계산, 동적 배열 함수에 `_xlfn.` 자동 접두사), [시트](https://github.com/iOfficeAI/OfficeCLI/wiki/excel-sheet) (visible/hidden/veryHidden, 인쇄 여백 - Network accessline 180
**PowerPoint** — [슬라이드](https://github.com/iOfficeAI/OfficeCLI/wiki/ppt-slide) (머리글/바닥글/날짜/슬라이드 번호 토글, 숨김), [도형](https://github.com/iOfficeAI/OfficeCLI/wiki/ppt-shape) (패턴 채우기, 흐림 효과, 하이퍼링크 툴팁 + 슬라이드 점프 링크), [이미지](https://github.com/iOffice - Network accessline 206
# macOS / Linux curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Dangerous shell operationline 207
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 207
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 209
# Windows (PowerShell) irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 210
irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 226
**또는 수동 다운로드** [GitHub Releases](https://github.com/iOfficeAI/OfficeCLI/releases): - Network accessline 263
officecli view deck.pptx html -o /tmp/deck.html officecli view deck.pptx screenshot -o /tmp/deck.png # 여러 페이지는 --page 1-N officecli watch deck.pptx # http://localhost:26315 - Network accessline 265
officecli watch deck.pptx # http://localhost:26315 - Network accessline 357
내장 [MCP](https://modelcontextprotocol.io) 서버 — 명령어 하나로 등록: - Network accessline 384
curl -fsSL https://officecli.ai/SKILL.md - Network accessline 390
curl -fsSL https://officecli.ai/SKILL.md -o ~/.claude/skills/officecli.md - Network accessline 499
| 명령어 | 설명 | |--------|------| | [`create`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-create) | 빈 .docx, .xlsx, .pptx 생성 (확장자로 유형 결정) | - Network accessline 500
|--------|------| | [`create`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-create) | 빈 .docx, .xlsx, .pptx 생성 (확장자로 유형 결정) | | [`view`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-view) | 콘텐츠 보기 (모드: `outline`, `text`, `anno - Network accessline 501
| [`create`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-create) | 빈 .docx, .xlsx, .pptx 생성 (확장자로 유형 결정) | - Network accessline 502
| [`view`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-view) | 콘텐츠 보기 (모드: `outline`, `text`, `annotated`, `stats`, `issues`, `html`) | - Network accessline 503
| [`get`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-get) | 요소와 하위 요소 가져오기 (`--depth N`, `--json`) | - Network accessline 504
| [`query`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-query) | CSS 스타일 쿼리 (`[attr=value]`, `:contains()`, `:has()` 등) | - Network accessline 505
| [`set`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-set) | 요소 속성 수정 | - Network accessline 506
| [`add`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-add) | 요소 추가 (또는 `--from <path>`로 복제) | - Network accessline 507
| [`remove`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-remove) | 요소 삭제 | - Network accessline 508
| [`move`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-move) | 요소 이동 (`--to <parent>`, `--index N`, `--after <path>`, `--before <path>`) | - Network accessline 509
| [`swap`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-swap) | 두 요소 교체 | - Network accessline 510
| [`validate`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-validate) | OpenXML 스키마 검증 | - Network accessline 511
| [`batch`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-batch) | 한 번의 open/save 사이클에서 여러 작업 실행 (stdin, `--input`, 또는 `--commands`; 기본적으로 첫 오류에서 중지, `--force`로 계속) | - Network accessline 512
| [`merge`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-merge) | 템플릿 병합 — `{{key}}` 플레이스홀더를 JSON 데이터로 교체 | - Network accessline 513
| [`watch`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-watch) | 브라우저에서 라이브 HTML 미리보기, 자동 새로고침 | - Network accessline 514
| [`mcp`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-mcp) | AI 도구 통합용 MCP 서버 시작 | - Network accessline 515
| [`raw`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-raw) | 문서 파트의 원시 XML 보기 | - Network accessline 516
| [`raw-set`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-raw) | XPath로 원시 XML 수정 | - Network accessline 517
| `add-part` | 새 문서 파트 추가 (머리글, 차트 등) | | [`open`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-open) | 레지던트 모드 시작 (문서를 메모리에 유지) | | `close` | 저장하고 레지던트 모드 종료 | - Network accessline 518
| [`open`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-open) | 레지던트 모드 시작 (문서를 메모리에 유지) | - Network accessline 519
| `close` | 저장하고 레지던트 모드 종료 | | [`install`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-install) | 바이너리 + 스킬 + MCP 설치 (`all`, `claude`, `cursor` 등) | | `config` | 설정 가져오기 또는 변경 | - Network accessline 520
| [`install`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-install) | 바이너리 + 스킬 + MCP 설치 (`all`, `claude`, `cursor` 등) | - Network accessline 522
| `help <format> <command>` | [내장 도움말](https://github.com/iOfficeAI/OfficeCLI/wiki/command-reference) (예: `officecli help pptx set shape`) | - Network accessline 601
[Wiki](https://github.com/iOfficeAI/OfficeCLI/wiki)에서 모든 명령어, 요소 유형, 속성의 상세 가이드를 확인하세요: - Network accessline 603
- **형식별:** [Word](https://github.com/iOfficeAI/OfficeCLI/wiki/word-reference) | [Excel](https://github.com/iOfficeAI/OfficeCLI/wiki/excel-reference) | [PowerPoint](https://github.com/iOfficeAI/OfficeCLI/wiki/powerpoint-reference) - Network accessline 604
- **워크플로우:** [엔드투엔드 예시](https://github.com/iOfficeAI/OfficeCLI/wiki/workflows) -- Word 보고서, Excel 대시보드, PPT 프레젠테이션, 일괄 수정, 레지던트 모드 - Network accessline 605
- **문제 해결:** [자주 발생하는 오류와 해결책](https://github.com/iOfficeAI/OfficeCLI/wiki/troubleshooting) - Network accessline 606
- **AI 에이전트 가이드:** [Wiki 내비게이션 결정 트리](https://github.com/iOfficeAI/OfficeCLI/wiki/agent-guide) - Network accessline 610
컴파일에는 [.NET 10 SDK](https://dotnet.microsoft.com/download)가 필요합니다. 출력은 자체 완결형 네이티브 바이너리 -- .NET이 내장되어 있어 실행 시 설치 불필요. - Network accessline 620
버그 리포트와 기여는 [GitHub Issues](https://github.com/iOfficeAI/OfficeCLI/issues)로 환영합니다. - Network accessline 624
OfficeCLI가 유용하다면 [GitHub에서 스타를 눌러주세요](https://github.com/iOfficeAI/OfficeCLI) — 더 많은 사람들이 프로젝트를 발견하는 데 도움이 됩니다. - Network accessline 626
[OfficeCLI.AI](https://OfficeCLI.AI) | [GitHub](https://github.com/iOfficeAI/OfficeCLI) - Network accessline 638
mcp-server: true skill-file: SKILL.md install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 639
skill-file: SKILL.md install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash install-command-windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Dangerous shell operationline 640
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 640
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 641
install-command-windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 656
skill-file: SKILL.md alternatives: python-docx, openpyxl, python-pptx, libreoffice --headless install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 657
alternatives: python-docx, openpyxl, python-pptx, libreoffice --headless install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash install-command-windows: irm https://raw.githubuserconten - Dangerous shell operationline 658
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 658
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 659
install-command-windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex
README_zh.md
- Network accessline 11
[](https://github.com/iOfficeAI/OfficeCLI/releases) - Network accessline 12
[](LICENSE) - Network accessline 16
<p align="center"> <strong>🌐 官方网站:</strong> <a href="https://officecli.ai" target="_blank">officecli.ai</a> | <strong>💬 社区:</strong> <a href="https://discord.gg/2QAwJn7Egx" target="_blank">Discord</a> - Network accessline 17
<strong>🌐 官方网站:</strong> <a href="https://officecli.ai" target="_blank">officecli.ai</a> | <strong>💬 社区:</strong> <a href="https://discord.gg/2QAwJn7Egx" target="_blank">Discord</a> - Network accessline 24
<p align="center"><em>在 <a href="https://github.com/iOfficeAI/AionUi">AionUi</a> 上使用 OfficeCLI 的 PPT 制作过程</em></p> - Network accessline 70
curl -fsSL https://officecli.ai/SKILL.md - Network accessline 77
**方式 A — 图形界面:** 安装 [**AionUi**](https://github.com/iOfficeAI/AionUi) — 一款桌面应用,用自然语言就能创建和编辑 Office 文档,底层由 OfficeCLI 驱动。只需描述你想要什么,AionUi 帮你搞定。 - Network accessline 79
**方式 B — 命令行:** 从 [GitHub Releases](https://github.com/iOfficeAI/OfficeCLI/releases) 下载对应平台的二进制文件,然后运行: - Network accessline 90
# 1. 安装(macOS / Linux)— 也可以:brew install officecli / npm install -g @officecli/officecli curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Dangerous shell operationline 91
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 91
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 92
# Windows (PowerShell): irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 97
# 3. 启动实时预览 — 浏览器自动打开 http://localhost:26315 - Network accessline 176
**Word** — 完整的 [i18n 与 RTL 支持](https://github.com/iOfficeAI/OfficeCLI/wiki/i18n)(按脚本字体槽位、按脚本 BCP-47 语言标签 `lang.latin/ea/cs`、复杂脚本粗体/斜体/字号、`direction=rtl` 在段落/文本片段/节/表格/样式/页眉/页脚/docDefaults 间级联、`rtlGutter` + `pgBorders` 简写、印地语/阿拉伯语/泰语/中日韩本地化页 - Network accessline 178
**Excel** — [单元格](https://github.com/iOfficeAI/OfficeCLI/wiki/excel-cell)(添加时支持音标/振假名)、公式(内置 350+ 函数自动求值,可溢出的动态数组自动加 `_xlfn.` 前缀,含财务/债券与统计函数族)、[工作表](https://github.com/iOfficeAI/OfficeCLI/wiki/excel-sheet)(visible/hidden/veryHidden、打印边距、pri - Network accessline 180
**PowerPoint** — [幻灯片](https://github.com/iOfficeAI/OfficeCLI/wiki/ppt-slide)(页眉/页脚/日期/页码切换、隐藏)、[形状](https://github.com/iOfficeAI/OfficeCLI/wiki/ppt-shape)(图案填充、模糊效果、超链接提示 + 跳转幻灯片链接)、[图片](https://github.com/iOfficeAI/OfficeCLI/wiki/ppt-pict - Network accessline 206
# macOS / Linux curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Dangerous shell operationline 207
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 207
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 209
# Windows (PowerShell) irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 210
irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 226
**或手动下载** [GitHub Releases](https://github.com/iOfficeAI/OfficeCLI/releases): - Network accessline 263
officecli view deck.pptx html -o /tmp/deck.html officecli view deck.pptx screenshot -o /tmp/deck.png # 多页用 --page 1-N officecli watch deck.pptx # http://localhost:26315 - Network accessline 265
officecli watch deck.pptx # http://localhost:26315 - Network accessline 334
> python my_reader.py report.docx # 此时才能看到改动 > ``` > 常驻进程闲置约 10s 后也会自动落盘一次。完整落盘模型(auto-save / auto-close / save / close、环境变量调节):[wiki → open / close](https://github.com/iOfficeAI/OfficeCLI/wiki/command-open#when-the-file-on-disk-is-ref - Network accessline 336
> 常驻进程闲置约 10s 后也会自动落盘一次。完整落盘模型(auto-save / auto-close / save / close、环境变量调节):[wiki → open / close](https://github.com/iOfficeAI/OfficeCLI/wiki/command-open#when-the-file-on-disk-is-refreshed)。 - Network accessline 369
内置 [MCP](https://modelcontextprotocol.io) 服务器 — 一条命令注册: - Network accessline 397
curl -fsSL https://officecli.ai/SKILL.md - Network accessline 403
curl -fsSL https://officecli.ai/SKILL.md -o ~/.claude/skills/officecli.md - Network accessline 512
| 命令 | 说明 | |------|------| | [`create`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-create) | 创建空白 .docx、.xlsx 或 .pptx(根据扩展名判断类型) | - Network accessline 513
|------|------| | [`create`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-create) | 创建空白 .docx、.xlsx 或 .pptx(根据扩展名判断类型) | | [`view`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-view) | 查看内容(模式:`outline`、`text`、`annotated`、`st - Network accessline 514
| [`create`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-create) | 创建空白 .docx、.xlsx 或 .pptx(根据扩展名判断类型) | - Network accessline 515
| [`view`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-view) | 查看内容(模式:`outline`、`text`、`annotated`、`stats`、`issues`、`html`) | - Network accessline 516
| [`get`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-get) | 获取元素及子元素(`--depth N`、`--json`) | - Network accessline 517
| [`query`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-query) | CSS 风格查询(`[attr=value]`、`:contains()`、`:has()` 等) | - Network accessline 518
| [`set`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-set) | 修改元素属性 | - Network accessline 519
| [`add`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-add) | 添加元素(或通过 `--from <path>` 克隆) | - Network accessline 520
| [`remove`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-remove) | 删除元素 | - Network accessline 521
| [`move`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-move) | 移动元素(`--to <parent>`、`--index N`、`--after <path>`、`--before <path>`) | - Network accessline 522
| [`swap`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-swap) | 交换两个元素 | - Network accessline 523
| [`validate`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-validate) | OpenXML 模式校验 | - Network accessline 524
| [`batch`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-batch) | 单次打开/保存周期内执行多条操作(stdin、`--input` 或 `--commands`;默认原子化——只要有一条失败整批回滚,`--best-effort` 保留已成功部分,`--stop-on-error` 提前中止) | - Network accessline 525
| [`merge`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-merge) | 模板合并 — 用 JSON 数据替换 `{{key}}` 占位符 | - Network accessline 526
| [`watch`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-watch) | 在浏览器中实时 HTML 预览,自动刷新 | - Network accessline 527
| [`mcp`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-mcp) | 启动 MCP 服务器,用于 AI 工具集成 | - Network accessline 528
| [`raw`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-raw) | 查看文档部件的原始 XML | - Network accessline 529
| [`raw-set`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-raw) | 通过 XPath 修改原始 XML | - Network accessline 530
| `add-part` | 添加新的文档部件(页眉、图表等) | | [`open`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-open) | 启动驻留模式(文档保持在内存中) | | `close` | 保存并关闭驻留模式 | - Network accessline 531
| [`open`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-open) | 启动驻留模式(文档保持在内存中) | - Network accessline 532
| `close` | 保存并关闭驻留模式 | | [`install`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-install) | 安装二进制文件 + 技能文件 + MCP(`all`、`claude`、`cursor` 等) | | `config` | 获取或设置配置 | - Network accessline 533
| [`install`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-install) | 安装二进制文件 + 技能文件 + MCP(`all`、`claude`、`cursor` 等) | - Network accessline 535
| `help <format> <command>` | [内置帮助](https://github.com/iOfficeAI/OfficeCLI/wiki/command-reference)(如 `officecli help pptx set shape`) | - Network accessline 614
[Wiki](https://github.com/iOfficeAI/OfficeCLI/wiki) 提供了每个命令、元素类型和属性的详细指南: - Network accessline 616
- **按格式查看:**[Word](https://github.com/iOfficeAI/OfficeCLI/wiki/word-reference) | [Excel](https://github.com/iOfficeAI/OfficeCLI/wiki/excel-reference) | [PowerPoint](https://github.com/iOfficeAI/OfficeCLI/wiki/powerpoint-reference) - Network accessline 617
- **工作流:**[端到端示例](https://github.com/iOfficeAI/OfficeCLI/wiki/workflows) -- Word 报告、Excel 数据表、PPT 演示、批量修改、驻留模式 - Network accessline 618
- **故障排除:**[常见错误与解决方案](https://github.com/iOfficeAI/OfficeCLI/wiki/troubleshooting) - Network accessline 619
- **AI 智能体指南:**[Wiki 导航决策树](https://github.com/iOfficeAI/OfficeCLI/wiki/agent-guide) - Network accessline 623
编译需要 [.NET 10 SDK](https://dotnet.microsoft.com/download)。输出为自包含的原生二进制文件 -- .NET 已内嵌,运行时无需安装。 - Network accessline 633
欢迎通过 [GitHub Issues](https://github.com/iOfficeAI/OfficeCLI/issues) 提交 Bug 报告和贡献代码。 - Network accessline 637
如果觉得 OfficeCLI 好用,请在 [GitHub 上点个 Star](https://github.com/iOfficeAI/OfficeCLI) — 帮助更多人发现这个项目。 - Network accessline 639
[OfficeCLI.AI](https://OfficeCLI.AI) | [GitHub](https://github.com/iOfficeAI/OfficeCLI) - Network accessline 651
mcp-server: true skill-file: SKILL.md install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 652
skill-file: SKILL.md install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash install-command-windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Dangerous shell operationline 653
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 653
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 654
install-command-windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex - Network accessline 669
skill-file: SKILL.md alternatives: python-docx, openpyxl, python-pptx, libreoffice --headless install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 670
alternatives: python-docx, openpyxl, python-pptx, libreoffice --headless install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash install-command-windows: irm https://raw.githubuserconten - Dangerous shell operationline 671
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 671
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash - Network accessline 672
install-command-windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex
SKILL.md
- Network accessline 15
# macOS / Linux curl -fsSL https://d.officecli.ai/install.sh | bash - Dangerous shell operationline 16
curl -fsSL https://d.officecli.ai/install.sh | bash - Network accessline 16
curl -fsSL https://d.officecli.ai/install.sh | bash - Network accessline 18
# Windows (PowerShell) irm https://d.officecli.ai/install.ps1 | iex - Network accessline 19
irm https://d.officecli.ai/install.ps1 | iex - Network accessline 160
Open the printed `http://localhost:N` URL. Click to select; shift/cmd/ctrl+click to multi-select; drag from empty space to box-select. PPT/Word use blue outline; Excel uses native-style green selection (double-click cell to edit inline; dra
THIRD-PARTY-NOTICES.txt
- Network accessline 6
================================================================================ DocumentFormat.OpenXml (3.4.1) https://github.com/dotnet/Open-XML-SDK - Network accessline 8
https://github.com/dotnet/Open-XML-SDK - Network accessline 14
================================================================================ System.CommandLine (3.0.0-preview.2.26159.112) https://github.com/dotnet/command-line-api - Network accessline 16
https://github.com/dotnet/command-line-api - Network accessline 22
================================================================================ .NET Runtime (bundled by self-contained publish) https://github.com/dotnet/runtime - Network accessline 24
https://github.com/dotnet/runtime
build.sh
build/officecli.entitlements
examples/README.md
examples/excel/cell-formatting.md
- Network accessline 106
officecli set file.xlsx /Data/B7 --prop value=007 --prop type=string # keep leading zeros officecli set file.xlsx /Data/A9 --prop value="OfficeCLI on GitHub" \ --prop link="https://github.com/iOfficeAI/OfficeCLI" --p - Network accessline 107
officecli set file.xlsx /Data/A9 --prop value="OfficeCLI on GitHub" --prop link="https://github.com/iOfficeAI/OfficeCLI" --prop tooltip="Open the repo" - Network accessline 108
--prop link="https://github.com/iOfficeAI/OfficeCLI" --prop tooltip="Open the repo"
examples/excel/cell-formatting.py
examples/excel/cell-formatting.sh
examples/excel/charts.py
examples/excel/charts.sh
- Executable scriptline 1
#!/bin/bash - Dangerous shell operationline 15
rm -f "$XLSX" - Network accessline 262
<xdr:nvGraphicFramePr><xdr:cNvPr id=\"3\" name=\"Chart 5\" /><xdr:cNvGraphicFramePr /></xdr:nvGraphicFramePr> <xdr:xfrm><a:off x=\"0\" y=\"0\" /><a:ext cx=\"0\" cy=\"0\" /></xdr:xfrm> <a:graphic><a:graphicData uri=\"http://schemas.o - Network accessline 263
<xdr:xfrm><a:off x=\"0\" y=\"0\" /><a:ext cx=\"0\" cy=\"0\" /></xdr:xfrm> <a:graphic><a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/chart\"><c:chart r:id=\"${CHART5_REL}\" /></a:graphicData></a:graphic> </xdr:gr - Network accessline 264
<a:graphic><a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/chart\"><c:chart r:id=\"${CHART5_REL}\" /></a:graphicData></a:graphic>
examples/excel/charts/charts-advanced.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-advanced.sh
examples/excel/charts/charts-area.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-area.sh
examples/excel/charts/charts-bar.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-bar.sh
examples/excel/charts/charts-basic.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-basic.sh
examples/excel/charts/charts-boxwhisker.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-boxwhisker.sh
- Executable scriptline 1
#!/bin/bash - Dangerous shell operationline 10
rm -f "$FILE" - Possible obfuscationline 142
officecli add "$FILE" "/2-Axes & Styling" --type chart --prop chartType=boxWhisker --prop title="Server Latency Dashboard" --prop title.color=0F172A --prop title.size=18 --prop title.bold=true --prop title.font="Helvetica
examples/excel/charts/charts-bubble.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-bubble.sh
examples/excel/charts/charts-column.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-column.sh
examples/excel/charts/charts-combo.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-combo.sh
examples/excel/charts/charts-extended.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-extended.sh
examples/excel/charts/charts-histogram.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-histogram.sh
examples/excel/charts/charts-line.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-line.sh
examples/excel/charts/charts-pie.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-pie.sh
examples/excel/charts/charts-radar.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-radar.sh
examples/excel/charts/charts-scatter.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-scatter.sh
examples/excel/charts/charts-stock.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-stock.sh
examples/excel/charts/charts-waterfall.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/charts/charts-waterfall.sh
examples/excel/conditional-formatting.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/conditional-formatting.sh
examples/excel/data-validation.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/data-validation.sh
examples/excel/pivot-tables.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/pivot-tables.sh
examples/excel/shapes.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/shapes.sh
examples/excel/sheet-settings.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/sheet-settings.sh
examples/excel/slicers.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/slicers.sh
examples/excel/sparklines.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/sparklines.sh
examples/excel/workbook-settings.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/excel/workbook-settings.sh
examples/ppt/3d-model.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/3d-model.sh
examples/ppt/animations.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/animations.sh
examples/ppt/charts/charts-3d.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/charts/charts-3d.sh
examples/ppt/charts/charts-advanced.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/charts/charts-advanced.sh
examples/ppt/charts/charts-area.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/charts/charts-area.sh
examples/ppt/charts/charts-bar.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/charts/charts-bar.sh
examples/ppt/charts/charts-bubble.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/charts/charts-bubble.sh
examples/ppt/charts/charts-column.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/charts/charts-column.sh
examples/ppt/charts/charts-combo.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/charts/charts-combo.sh
examples/ppt/charts/charts-doughnut.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/charts/charts-doughnut.sh
examples/ppt/charts/charts-line.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/charts/charts-line.sh
examples/ppt/charts/charts-pie.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/charts/charts-pie.sh
examples/ppt/charts/charts-radar.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/charts/charts-radar.sh
examples/ppt/charts/charts-scatter.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/charts/charts-scatter.sh
examples/ppt/charts/charts-stock.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/charts/charts-stock.sh
examples/ppt/charts/charts-waterfall.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/charts/charts-waterfall.sh
examples/ppt/diagram.md
- Network accessline 3
Render [Mermaid](https://mermaid.js.org/) source into a slide two ways:
examples/ppt/diagram.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/diagram.sh
examples/ppt/ole/ole-embed.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/ole/ole-embed.sh
examples/ppt/pictures/pictures-basic.md
- Network accessline 149
officecli add pictures-basic.pptx '/slide[4]' --type picture --prop src="/path/to/gradient.png" --prop x=0.5in --prop y=1.5in --prop width=3.5in --prop height=2.6in --prop link=https://example.com - Network accessline 150
--prop src="/path/to/gradient.png" \ --prop x=0.5in --prop y=1.5in --prop width=3.5in --prop height=2.6in \ --prop link=https://example.com \ - Network accessline 151
--prop x=0.5in --prop y=1.5in --prop width=3.5in --prop height=2.6in \ --prop link=https://example.com \ --prop tooltip="Open example.com" - Network accessline 152
--prop link=https://example.com \
examples/ppt/pictures/pictures-basic.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 266
src=grad, x="0.5in", y="1.5in", width="3.5in", height="2.6in", link="https://example.com", - Network accessline 267
x="0.5in", y="1.5in", width="3.5in", height="2.6in", link="https://example.com", tooltip="Open example.com") - Network accessline 268
link="https://example.com", - Network accessline 269
tooltip="Open example.com") add(doc, "/slide[4]", "textbox", text="link=https://example.com", - Network accessline 270
add(doc, "/slide[4]", "textbox", text="link=https://example.com", size="12", - Network accessline 271
text="link=https://example.com",
examples/ppt/pictures/pictures-basic.sh
- Executable scriptline 1
#!/bin/bash - Dangerous shell operationline 24
trap 'rm -rf "$WORKDIR"' EXIT - Dangerous shell operationline 73
rm -f "$FILE" - Network accessline 201
$CLI add "$FILE" "/slide[4]" --type picture --prop src="$GRAD" --prop x=0.5in --prop y=1.5in --prop width=3.5in --prop height=2.6in --prop link="https://example.com" - Network accessline 202
--prop src="$GRAD" \ --prop x=0.5in --prop y=1.5in --prop width=3.5in --prop height=2.6in \ --prop link="https://example.com" \ - Network accessline 203
--prop x=0.5in --prop y=1.5in --prop width=3.5in --prop height=2.6in \ --prop link="https://example.com" \ --prop tooltip="Open example.com" - Network accessline 204
--prop link="https://example.com" \ - Network accessline 205
--prop tooltip="Open example.com" $CLI add "$FILE" "/slide[4]" --type textbox \ --prop text="link=https://example.com" --prop size=12 \ - Network accessline 206
$CLI add "$FILE" "/slide[4]" --type textbox --prop text="link=https://example.com" --prop size=12 - Network accessline 207
--prop text="link=https://example.com" --prop size=12 \
examples/ppt/presentation-settings.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/presentation-settings.sh
examples/ppt/presentation.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/presentation.sh
examples/ppt/shapes/shapes-basic.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/shapes/shapes-basic.sh
examples/ppt/shapes/shapes-connectors.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/shapes/shapes-connectors.sh
examples/ppt/shapes/shapes-effects.md
- Network accessline 196
officecli add shapes-effects.pptx '/slide[5]' --type shape --prop geometry=roundRect --prop x=0.5in --prop y=4in --prop width=4in --prop height=1in --prop fill=2A9D8F --prop color=FFFFFF --prop bold=true --prop size=16 --prop text= - Network accessline 198
--prop fill=2A9D8F --prop color=FFFFFF --prop bold=true --prop size=16 \ --prop text="Click me → example.com" \ --prop link=https://example.com --prop tooltip="Open example.com" \ - Network accessline 199
--prop text="Click me → example.com" \ --prop link=https://example.com --prop tooltip="Open example.com" \ --prop name="cta-button" - Network accessline 200
--prop link=https://example.com --prop tooltip="Open example.com" \
examples/ppt/shapes/shapes-effects.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 207
fill="2A9D8F", color="FFFFFF", bold="true", size="16", text="Click me → example.com", link="https://example.com", tooltip="Open example.com", name="cta-button"), - Network accessline 208
text="Click me → example.com", link="https://example.com", tooltip="Open example.com", name="cta-button"), textbox(5, text=('link=https://example.com tooltip="Open example.com" name="cta-button"'), - Network accessline 209
link="https://example.com", tooltip="Open example.com", name="cta-button"), - Network accessline 210
textbox(5, text=('link=https://example.com tooltip="Open example.com" name="cta-button"'),
examples/ppt/shapes/shapes-effects.sh
- Executable scriptline 1
#!/bin/bash - Dangerous shell operationline 34
rm -f "$PPTX" - Network accessline 215
officecli add "$PPTX" '/slide[5]' --type shape --prop geometry=roundRect --prop x=0.5in --prop y=4in --prop width=4in --prop height=1in --prop fill=2A9D8F --prop color=FFFFFF --prop bold=true --prop size=16 --prop text="Click - Network accessline 217
--prop fill=2A9D8F --prop color=FFFFFF --prop bold=true --prop size=16 \ --prop text="Click me → example.com" \ --prop link=https://example.com --prop tooltip="Open example.com" \ - Network accessline 218
--prop text="Click me → example.com" \ --prop link=https://example.com --prop tooltip="Open example.com" \ --prop name="cta-button" - Network accessline 219
--prop link=https://example.com --prop tooltip="Open example.com" \ - Network accessline 222
officecli add "$PPTX" '/slide[5]' --type textbox \ --prop text='link=https://example.com tooltip="Open example.com" name="cta-button"' \ - Network accessline 223
--prop text='link=https://example.com tooltip="Open example.com" name="cta-button"' \ - Dangerous shell operationline 245
rm -f "$SAMPLE_PNG"
examples/ppt/shapes/shapes-typography.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/shapes/shapes-typography.sh
examples/ppt/tables/tables-basic.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/tables/tables-basic.sh
examples/ppt/tables/tables-borders.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/tables/tables-borders.sh
examples/ppt/tables/tables-financial.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/tables/tables-financial.sh
examples/ppt/tables/tables-merged.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/tables/tables-merged.sh
examples/ppt/tables/tables-nested.py
examples/ppt/tables/tables-nested.sh
- Executable scriptline 1
#!/bin/bash - Dangerous shell operationline 30
rm -f "$FILE" - Possible obfuscationline 37
python3 -c "import base64,sys; open(sys.argv[1],'wb').write(base64.b64decode('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg=='))" "$IMG" - Dangerous shell operationline 145
rm -f "$IMG"
examples/ppt/tables/tables-rows-cols.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/tables/tables-rows-cols.sh
examples/ppt/tables/tables-styled.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/tables/tables-styled.sh
examples/ppt/templates/styles/brand--aura-coffee-dark/build.sh
examples/ppt/templates/styles/brand--aura-coffee/build.sh
- Executable scriptline 1
#!/bin/bash
examples/ppt/templates/styles/future--2050-vision/build.sh
- Executable scriptline 1
#!/bin/bash
examples/ppt/templates/styles/lifestyle--cat-philosophy/build.sh
- Executable scriptline 1
#!/bin/bash
examples/ppt/templates/styles/lifestyle--cat-secret-life/build.sh
- Executable scriptline 1
#!/bin/bash
examples/ppt/templates/styles/lifestyle--feline-report/build_ppt.sh
examples/ppt/templates/styles/product--geminicli-timetravel/build.sh
- Executable scriptline 1
#!/bin/bash
examples/ppt/templates/styles/productivity--attention-budget/build.sh
examples/ppt/templates/styles/science--alien-guide/build.sh
examples/ppt/templates/styles/science--space-exploration/build.sh
examples/ppt/templates/styles/science--time-travel/build.sh
examples/ppt/templates/styles/tech--wildlife-company/build.sh
- Executable scriptline 1
#!/bin/bash
examples/ppt/textboxes/textboxes-advanced.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/textboxes/textboxes-advanced.sh
examples/ppt/textboxes/textboxes-basic.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/textboxes/textboxes-basic.sh
examples/ppt/transitions/transitions-bands.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/transitions/transitions-bands.sh
examples/ppt/transitions/transitions-basic.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/transitions/transitions-basic.sh
examples/ppt/transitions/transitions-directional.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/transitions/transitions-directional.sh
examples/ppt/transitions/transitions-dynamic.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/transitions/transitions-dynamic.sh
examples/ppt/transitions/transitions-modern.md
- Network accessline 83
| `crush` | Crush | Symmetric | | `peelOff` | Peel Off | Yes | | `pageCurlDouble` | Page Curl (double) | Yes | - Network accessline 84
| `peelOff` | Peel Off | Yes | | `pageCurlDouble` | Page Curl (double) | Yes | | `pageCurlSingle` | Page Curl (single) | Yes | - Network accessline 85
| `pageCurlDouble` | Page Curl (double) | Yes | - Network accessline 86
| `pageCurlSingle` | Page Curl (single) | Yes |
examples/ppt/transitions/transitions-modern.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/transitions/transitions-modern.sh
examples/ppt/transitions/transitions-morph.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/transitions/transitions-morph.sh
examples/ppt/transitions/transitions-random.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/transitions/transitions-random.sh
examples/ppt/transitions/transitions-shapes.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/transitions/transitions-shapes.sh
examples/ppt/transitions/transitions-timing.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/transitions/transitions-timing.sh
examples/ppt/video.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/ppt/video.sh
examples/word/charts.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/word/charts.sh
examples/word/content-controls.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/word/content-controls.sh
examples/word/diagram.md
examples/word/diagram.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/word/diagram.sh
examples/word/document-formatting.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/word/document-formatting.sh
examples/word/fields.md
- Network accessline 57
| **REF** | `fieldType=ref bookmarkName=IntroSection hyperlink=true` | `REF IntroSection \h` | | **IF** | `fieldType=if expression='1 = 1' trueText=… falseText=…` | `IF 1 = 1 "…" "…"` | | **HYPERLINK** | `instruction=' HYPERLINK "https://ex - Network accessline 58
| **IF** | `fieldType=if expression='1 = 1' trueText=… falseText=…` | `IF 1 = 1 "…" "…"` | | **HYPERLINK** | `instruction=' HYPERLINK "https://example.com" \o "…" '` | `HYPERLINK "…" \o "…"` | | **TITLE** | `fieldType=title` | `TITLE` | - Network accessline 59
| **HYPERLINK** | `instruction=' HYPERLINK "https://example.com" \o "…" '` | `HYPERLINK "…" \o "…"` | - Network accessline 109
officecli add file.docx /body --type field \ --prop instruction=' HYPERLINK "https://example.com" \o "Visit example.com" ' - Network accessline 110
--prop instruction=' HYPERLINK "https://example.com" \o "Visit example.com" '
examples/word/fields.py
examples/word/fields.sh
examples/word/formulas.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/word/formulas.sh
examples/word/numbering.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/word/numbering.sh
examples/word/paragraph-formatting.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/word/paragraph-formatting.sh
examples/word/pictures.md
- Network accessline 142
officecli add pictures.docx '/body/p[18]' --type picture --prop src=pictures-banner.png --prop width=10cm --prop height=2.5cm --prop link="https://example.com" - Network accessline 143
--prop src=pictures-banner.png \ --prop width=10cm --prop height=2.5cm \ --prop link="https://example.com" \ - Network accessline 144
--prop width=10cm --prop height=2.5cm \ --prop link="https://example.com" \ --prop alt="Banner linking to example.com" - Network accessline 145
--prop link="https://example.com" \
examples/word/pictures.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 187
add(doc, "/body/p[18]", "picture", src=BANNER, width="10cm", height="2.5cm", link="https://example.com", - Network accessline 188
src=BANNER, width="10cm", height="2.5cm", link="https://example.com", alt="Banner linking to example.com") - Network accessline 189
link="https://example.com",
examples/word/pictures.sh
- Executable scriptline 1
#!/bin/bash - Dangerous shell operationline 57
rm -f "$FILE" - Network accessline 151
$CLI add "$FILE" "/body/p[18]" --type picture --prop src="$BANNER" --prop width=10cm --prop height=2.5cm --prop link="https://example.com" - Network accessline 152
--prop src="$BANNER" \ --prop width=10cm --prop height=2.5cm \ --prop link="https://example.com" \ - Network accessline 153
--prop width=10cm --prop height=2.5cm \ --prop link="https://example.com" \ --prop alt="Banner linking to example.com" - Network accessline 154
--prop link="https://example.com" \
examples/word/revisions.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/word/revisions.sh
examples/word/run-formatting.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/word/run-formatting.sh
examples/word/sections.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/word/sections.sh
examples/word/tables.py
- Executable scriptline 1
#!/usr/bin/env python3
examples/word/tables.sh
examples/word/textbox.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 117
<wp:docPr id="2" name="TextBox 2"/> <a:graphic> <a:graphicData uri="http://schemas.microsoft.com/office/word/2010/wordprocessingShape"> - Network accessline 118
<a:graphic> <a:graphicData uri="http://schemas.microsoft.com/office/word/2010/wordprocessingShape"> <wps:wsp> - Network accessline 119
<a:graphicData uri="http://schemas.microsoft.com/office/word/2010/wordprocessingShape"> - Network accessline 162
<wp:docPr id="3" name="TextBox 3"/> <a:graphic> <a:graphicData uri="http://schemas.microsoft.com/office/word/2010/wordprocessingShape"> - Network accessline 163
<a:graphic> <a:graphicData uri="http://schemas.microsoft.com/office/word/2010/wordprocessingShape"> <wps:wsp> - Network accessline 164
<a:graphicData uri="http://schemas.microsoft.com/office/word/2010/wordprocessingShape">
examples/word/textbox.sh
- Executable scriptline 1
#!/bin/bash - Dangerous shell operationline 22
rm -f "$OUT" - Network accessline 62
<wp:docPr id="2" name="TextBox 2"/> <a:graphic> <a:graphicData uri="http://schemas.microsoft.com/office/word/2010/wordprocessingShape"> - Network accessline 63
<a:graphic> <a:graphicData uri="http://schemas.microsoft.com/office/word/2010/wordprocessingShape"> <wps:wsp> - Network accessline 64
<a:graphicData uri="http://schemas.microsoft.com/office/word/2010/wordprocessingShape"> - Network accessline 112
<wp:docPr id="3" name="TextBox 3"/> <a:graphic> <a:graphicData uri="http://schemas.microsoft.com/office/word/2010/wordprocessingShape"> - Network accessline 113
<a:graphic> <a:graphicData uri="http://schemas.microsoft.com/office/word/2010/wordprocessingShape"> <wps:wsp> - Network accessline 114
<a:graphicData uri="http://schemas.microsoft.com/office/word/2010/wordprocessingShape">
install.ps1
- Executable scriptline 1
Executable file - Network accessline 13
$mirrorBase = "https://d.officecli.ai" $githubReleaseBase = "https://github.com/$repo/releases/latest/download" - Network accessline 14
$githubReleaseBase = "https://github.com/$repo/releases/latest/download" - Network accessline 15
$githubRawBase = "https://raw.githubusercontent.com/$repo/main" - Network accessline 40
function Resolve-Version { foreach ($base in @("$mirrorBase/releases/latest", "https://github.com/$repo/releases/latest")) { - Network accessline 41
foreach ($base in @("$mirrorBase/releases/latest", "https://github.com/$repo/releases/latest")) { - Network accessline 70
Write-Host "Latest version: $version" $mirrorAssetBase = "$mirrorBase/releases/download/$version" $githubAssetBase = "https://github.com/$repo/releases/download/$version" - Network accessline 71
$mirrorAssetBase = "$mirrorBase/releases/download/$version" $githubAssetBase = "https://github.com/$repo/releases/download/$version" } else { - Network accessline 72
$githubAssetBase = "https://github.com/$repo/releases/download/$version" - Network accessline 140
if (-not $source) { Write-Host "Error: Could not find a valid OfficeCLI binary." Write-Host "Download manually from: https://github.com/$repo/releases" - Network accessline 141
Write-Host "Error: Could not find a valid OfficeCLI binary." Write-Host "Download manually from: https://github.com/$repo/releases" exit 1 - Network accessline 142
Write-Host "Download manually from: https://github.com/$repo/releases"
install.sh
- Executable scriptline 1
#!/bin/bash - Network accessline 9
MIRROR_BASE="https://d.officecli.ai" GITHUB_RELEASE_BASE="https://github.com/$REPO/releases/latest/download" - Network accessline 10
GITHUB_RELEASE_BASE="https://github.com/$REPO/releases/latest/download" - Network accessline 11
GITHUB_RAW_BASE="https://raw.githubusercontent.com/$REPO/main" - Network accessline 17
fetch_with_fallback() { local primary="$1" fallback="$2" out="$3" if curl -fsSL --max-time 300 --connect-timeout 5 "$primary" -o "$out" 2>/dev/null; then - Network accessline 18
local primary="$1" fallback="$2" out="$3" if curl -fsSL --max-time 300 --connect-timeout 5 "$primary" -o "$out" 2>/dev/null; then echo " (via mirror)" - Network accessline 19
if curl -fsSL --max-time 300 --connect-timeout 5 "$primary" -o "$out" 2>/dev/null; then - Network accessline 22
fi echo " mirror unreachable, falling back to github..." curl -fsSL --max-time 300 "$fallback" -o "$out" 2>/dev/null - Network accessline 23
echo " mirror unreachable, falling back to github..." curl -fsSL --max-time 300 "$fallback" -o "$out" 2>/dev/null } - Network accessline 24
curl -fsSL --max-time 300 "$fallback" -o "$out" 2>/dev/null - Network accessline 33
resolve_version() { local url url=$(curl -fsSL --max-time 30 --connect-timeout 5 -o /dev/null -w '%{url_effective}' \ - Network accessline 34
local url url=$(curl -fsSL --max-time 30 --connect-timeout 5 -o /dev/null -w '%{url_effective}' \ "$MIRROR_BASE/releases/latest" 2>/dev/null) - Network accessline 35
url=$(curl -fsSL --max-time 30 --connect-timeout 5 -o /dev/null -w '%{url_effective}' \ - Network accessline 36
"$MIRROR_BASE/releases/latest" 2>/dev/null) - Network accessline 38
*/releases/tag/v*) echo "${url##*/tag/}"; return 0 ;; esac url=$(curl -fsSL --max-time 30 -o /dev/null -w '%{url_effective}' \ - Network accessline 39
esac url=$(curl -fsSL --max-time 30 -o /dev/null -w '%{url_effective}' \ "https://github.com/$REPO/releases/latest" 2>/dev/null) - Network accessline 40
url=$(curl -fsSL --max-time 30 -o /dev/null -w '%{url_effective}' \ - Network accessline 41
"https://github.com/$REPO/releases/latest" 2>/dev/null) - Network accessline 86
*) echo "Unsupported OS: $OS" echo "For Windows, download from: https://github.com/$REPO/releases" - Network accessline 87
echo "Unsupported OS: $OS" echo "For Windows, download from: https://github.com/$REPO/releases" exit 1 - Network accessline 88
echo "For Windows, download from: https://github.com/$REPO/releases" - Network accessline 103
if [ -n "$VERSION" ]; then echo "Latest version: $VERSION" MIRROR_ASSET_BASE="$MIRROR_BASE/releases/download/$VERSION" - Network accessline 104
echo "Latest version: $VERSION" MIRROR_ASSET_BASE="$MIRROR_BASE/releases/download/$VERSION" GITHUB_ASSET_BASE="https://github.com/$REPO/releases/download/$VERSION" - Network accessline 105
MIRROR_ASSET_BASE="$MIRROR_BASE/releases/download/$VERSION" - Network accessline 106
GITHUB_ASSET_BASE="https://github.com/$REPO/releases/download/$VERSION" - Network accessline 107
else echo "Could not resolve latest version; falling back to 'latest' path." MIRROR_ASSET_BASE="$MIRROR_BASE/releases/latest/download" - Network accessline 108
echo "Could not resolve latest version; falling back to 'latest' path." MIRROR_ASSET_BASE="$MIRROR_BASE/releases/latest/download" GITHUB_ASSET_BASE="$GITHUB_RELEASE_BASE" - Network accessline 109
MIRROR_ASSET_BASE="$MIRROR_BASE/releases/latest/download" - Network accessline 110
GITHUB_ASSET_BASE="$GITHUB_RELEASE_BASE" - Network accessline 114
echo "Downloading OfficeCLI ($ASSET)..." if fetch_with_fallback \ "$MIRROR_ASSET_BASE/$ASSET" \ - Network accessline 115
if fetch_with_fallback "$MIRROR_ASSET_BASE/$ASSET" - Network accessline 116
"$MIRROR_ASSET_BASE/$ASSET" \ - Network accessline 117
"$GITHUB_ASSET_BASE/$ASSET" \ - Network accessline 120
CHECKSUM_OK=false if fetch_with_fallback \ "$MIRROR_ASSET_BASE/SHA256SUMS" \ - Network accessline 121
if fetch_with_fallback "$MIRROR_ASSET_BASE/SHA256SUMS" - Network accessline 122
"$MIRROR_ASSET_BASE/SHA256SUMS" \ - Network accessline 123
"$GITHUB_ASSET_BASE/SHA256SUMS" \ - Dangerous shell operationline 142
rm -f "/tmp/$BINARY_NAME" "/tmp/officecli-SHA256SUMS" - Dangerous shell operationline 146
rm -f "/tmp/officecli-SHA256SUMS" - Network accessline 174
if [ -z "$SOURCE" ]; then echo "Error: Could not find a valid OfficeCLI binary." echo "Download manually from: https://github.com/$REPO/releases" - Network accessline 175
echo "Error: Could not find a valid OfficeCLI binary." echo "Download manually from: https://github.com/$REPO/releases" exit 1 - Network accessline 176
echo "Download manually from: https://github.com/$REPO/releases" - Dangerous shell operationline 233
rm -f "/tmp/$BINARY_NAME" - Network accessline 249
echo "Downloading officecli skill..." if fetch_with_fallback \ "$MIRROR_BASE/SKILL.md" \ - Network accessline 250
if fetch_with_fallback "$MIRROR_BASE/SKILL.md" - Network accessline 251
"$MIRROR_BASE/SKILL.md" \ - Network accessline 252
"$GITHUB_RAW_BASE/SKILL.md" \ - Dangerous shell operationline 259
rm -f "/tmp/officecli-skill.md"
npm/README.md
npm/install.js
- Executable scriptline 1
Executable file
npm/lib/install-binary.js
npm/officecli.js
- Executable scriptline 1
#!/usr/bin/env node
npm/package.json
- Executable scriptline 1
Executable file - Network accessline 5
"license": "Apache-2.0", "author": "goworm", "homepage": "https://github.com/iOfficeAI/OfficeCLI", - Network accessline 6
"author": "goworm", "homepage": "https://github.com/iOfficeAI/OfficeCLI", "repository": { - Network accessline 7
"homepage": "https://github.com/iOfficeAI/OfficeCLI", - Network accessline 8
"repository": { "type": "git", "url": "git+https://github.com/iOfficeAI/OfficeCLI.git" - Network accessline 9
"type": "git", "url": "git+https://github.com/iOfficeAI/OfficeCLI.git" }, - Network accessline 10
"url": "git+https://github.com/iOfficeAI/OfficeCLI.git" - Network accessline 11
}, "bugs": { "url": "https://github.com/iOfficeAI/OfficeCLI/issues" - Network accessline 12
"bugs": { "url": "https://github.com/iOfficeAI/OfficeCLI/issues" }, - Network accessline 13
"url": "https://github.com/iOfficeAI/OfficeCLI/issues"
plugins/plugin-protocol.md
- Network accessline 677
The built-in installer consults a registry (default: `https://officecli.ai/plugins/registry.json`; configurable for private mirrors) which lists approved plugins, versions, download URLs, and SHA-256 hashes. - Network accessline 678
`https://officecli.ai/plugins/registry.json`; configurable for private mirrors)
schemas/help/_schema.json
schemas/help/docx/hyperlink.json
schemas/help/docx/picture.json
- Network accessline 218
"description": "click-hyperlink target for the image, making it clickable (<a:hlinkClick> on pic:cNvPr). An absolute URL or relative target round-trips as a TargetMode=External relationship; a '#anchor' or bare bookmark name round-trips as - Network accessline 219
"examples": [ "--prop src=logo.png --prop link=https://example.com" ], - Network accessline 220
"--prop src=logo.png --prop link=https://example.com"
schemas/help/pptx/hyperlink.json
- Network accessline 31
"get": true, "examples": [ "--prop link=https://example.com" - Network accessline 32
"examples": [ "--prop link=https://example.com" ], - Network accessline 33
"--prop link=https://example.com" - Network accessline 43
"get": true, "examples": [ "--prop link=https://example.com --prop tooltip=\"Open docs\"" - Network accessline 44
"examples": [ "--prop link=https://example.com --prop tooltip=\"Open docs\"" ], - Network accessline 45
"--prop link=https://example.com --prop tooltip=\"Open docs\""
schemas/help/pptx/picture.json
- Network accessline 136
"link": { "type": "string", "description": "click-hyperlink target attached to the picture's cNvPr (so the whole image is clickable). Accepts absolute URI (https://, mailto:), slide[N] for in-deck jumps, or named actions (firsts - Network accessline 137
"type": "string", "description": "click-hyperlink target attached to the picture's cNvPr (so the whole image is clickable). Accepts absolute URI (https://, mailto:), slide[N] for in-deck jumps, or named actions (firstslide, lastslide, - Network accessline 138
"description": "click-hyperlink target attached to the picture's cNvPr (so the whole image is clickable). Accepts absolute URI (https://, mailto:), slide[N] for in-deck jumps, or named actions (firstslide, lastslide, nextslide, previousslid - Network accessline 141
"get": true, "examples": [ "--prop link=https://example.com", - Network accessline 142
"examples": [ "--prop link=https://example.com", "--prop link='slide[3]'", - Network accessline 143
"--prop link=https://example.com", - Network accessline 155
"get": true, "examples": [ "--prop link=https://example.com --prop tooltip=\"Open homepage\"" - Network accessline 156
"examples": [ "--prop link=https://example.com --prop tooltip=\"Open homepage\"" ], - Network accessline 157
"--prop link=https://example.com --prop tooltip=\"Open homepage\""
schemas/help/pptx/shape.json
- Network accessline 759
"link": { "type": "string", "description": "click-action target for the shape. Accepts an absolute URI (https://, mailto:, tel:, …), slide[N] for an in-deck jump (1-based; the target slide must already exist), or a named navigat - Network accessline 760
"type": "string", "description": "click-action target for the shape. Accepts an absolute URI (https://, mailto:, tel:, …), slide[N] for an in-deck jump (1-based; the target slide must already exist), or a named navigation action (firs - Network accessline 761
"description": "click-action target for the shape. Accepts an absolute URI (https://, mailto:, tel:, …), slide[N] for an in-deck jump (1-based; the target slide must already exist), or a named navigation action (firstslide, lastslide, nexts - Network accessline 764
"get": true, "examples": [ "--prop link=https://example.com", - Network accessline 765
"examples": [ "--prop link=https://example.com", "--prop link=slide[3]", - Network accessline 766
"--prop link=https://example.com", - Network accessline 778
"get": true, "examples": [ "--prop link=https://example.com --prop tooltip=\"click here\"" - Network accessline 779
"examples": [ "--prop link=https://example.com --prop tooltip=\"click here\"" ], - Network accessline 780
"--prop link=https://example.com --prop tooltip=\"click here\""
schemas/help/xlsx/cell.json
- Network accessline 414
"link": { "type": "string", "description": "hyperlink target attached to the cell. Accepts external URL (https://, http://, mailto:, file://, onenote:, tel:) or internal anchor (#Sheet!Cell, #NamedRange). Use link=none on Set to - Network accessline 415
"type": "string", "description": "hyperlink target attached to the cell. Accepts external URL (https://, http://, mailto:, file://, onenote:, tel:) or internal anchor (#Sheet!Cell, #NamedRange). Use link=none on Set to remove. Parity - Network accessline 416
"description": "hyperlink target attached to the cell. Accepts external URL (https://, http://, mailto:, file://, onenote:, tel:) or internal anchor (#Sheet!Cell, #NamedRange). Use link=none on Set to remove. Parity with Set. Alias: url.", - Network accessline 422
"get": true, "examples": [ "--prop link=https://example.com", - Network accessline 423
"examples": [ "--prop link=https://example.com", "--prop link=mailto:user@example.com", - Network accessline 424
"--prop link=https://example.com", - Network accessline 440
"get": false, "examples": [ "--prop link=https://example.com --prop tooltip=\"Open in browser\"" - Network accessline 441
"examples": [ "--prop link=https://example.com --prop tooltip=\"Open in browser\"" ], - Network accessline 442
"--prop link=https://example.com --prop tooltip=\"Open in browser\"" - Network accessline 451
"get": true, "examples": [ "--prop link=https://example.com --prop display=\"Company site\"" - Network accessline 452
"examples": [ "--prop link=https://example.com --prop display=\"Company site\"" ], - Network accessline 453
"--prop link=https://example.com --prop display=\"Company site\""
schemas/help/xlsx/picture.json
- Network accessline 128
"hyperlink": { "type": "string", "description": "Picture-level hyperlink. External URL (https://...) or in-document jump (#SheetName!A1).", - Network accessline 129
"type": "string", "description": "Picture-level hyperlink. External URL (https://...) or in-document jump (#SheetName!A1).", "aliases": [ - Network accessline 130
"description": "Picture-level hyperlink. External URL (https://...) or in-document jump (#SheetName!A1).", - Network accessline 135
"set": false, "examples": [ "--prop hyperlink=https://example.com" - Network accessline 136
"examples": [ "--prop hyperlink=https://example.com" ], - Network accessline 137
"--prop hyperlink=https://example.com"
schemas/help/xlsx/shape.json
- Network accessline 22
"hyperlink": { "type": "string", "description": "Shape-level hyperlink. External URL (https://...) or in-document jump (#SheetName!A1).", - Network accessline 23
"type": "string", "description": "Shape-level hyperlink. External URL (https://...) or in-document jump (#SheetName!A1).", "aliases": [ - Network accessline 24
"description": "Shape-level hyperlink. External URL (https://...) or in-document jump (#SheetName!A1).",
sdk/node/README.md
- Network accessline 3
A thin **async** Node.js client over [officecli](https://github.com/iOfficeAI/OfficeCLI)'s
sdk/node/demo.js
- Executable scriptline 1
Executable file
sdk/node/index.d.ts
- Executable scriptline 1
Executable file
sdk/node/index.js
- Executable scriptline 1
Executable file - Network accessline 67
const INSTALL_SH_MIRROR = 'https://d.officecli.ai/install.sh'; - Network accessline 68
const INSTALL_SH_GITHUB = 'https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh'; - Network accessline 69
const INSTALL_PS1_MIRROR = 'https://d.officecli.ai/install.ps1'; - Network accessline 70
const INSTALL_PS1_GITHUB = 'https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1'; - Network accessline 74
'forwards commands to the officecli binary, which must be installed separately. Install it:\n' + ' node -e "require(\'@officecli/sdk\').install()" # runs the official installer\n' + ' # or: curl -fsSL ' + INSTALL_SH_MIRROR + ' | - Network accessline 75
' node -e "require(\'@officecli/sdk\').install()" # runs the official installer\n' + ' # or: curl -fsSL ' + INSTALL_SH_MIRROR + ' | bash\n' + ' # (npm i @officecli/sdk already pulls @officecli/officecli, which bundles the bin - Dangerous shell operationline 76
' # or: curl -fsSL ' + INSTALL_SH_MIRROR + ' | bash\n' + - Network accessline 76
' # or: curl -fsSL ' + INSTALL_SH_MIRROR + ' | bash\n' + - Dangerous shell operationline 632
// (curl mirror || curl github) | bash — the subshell emits whichever script - Network accessline 632
// (curl mirror || curl github) | bash — the subshell emits whichever script - Dangerous shell operationline 634
const sh = `(curl -fsSL ${INSTALL_SH_MIRROR} 2>/dev/null || curl -fsSL ${INSTALL_SH_GITHUB}) | bash`; - Network accessline 634
const sh = `(curl -fsSL ${INSTALL_SH_MIRROR} 2>/dev/null || curl -fsSL ${INSTALL_SH_GITHUB}) | bash`; - Network accessline 637
throw new OfficeCliError( r.status == null ? -1 : r.status, `officecli install failed. Run manually:\n curl -fsSL ${INSTALL_SH_MIRROR} | bash` - Network accessline 638
r.status == null ? -1 : r.status, `officecli install failed. Run manually:\n curl -fsSL ${INSTALL_SH_MIRROR} | bash` ); - Dangerous shell operationline 639
`officecli install failed. Run manually:\n curl -fsSL ${INSTALL_SH_MIRROR} | bash` - Network accessline 639
`officecli install failed. Run manually:\n curl -fsSL ${INSTALL_SH_MIRROR} | bash`
sdk/node/package.json
- Executable scriptline 1
Executable file - Network accessline 5
"license": "Apache-2.0", "author": "goworm", "homepage": "https://github.com/iOfficeAI/OfficeCLI/tree/main/sdk/node", - Network accessline 6
"author": "goworm", "homepage": "https://github.com/iOfficeAI/OfficeCLI/tree/main/sdk/node", "repository": { - Network accessline 7
"homepage": "https://github.com/iOfficeAI/OfficeCLI/tree/main/sdk/node", - Network accessline 8
"repository": { "type": "git", "url": "git+https://github.com/iOfficeAI/OfficeCLI.git", - Network accessline 9
"type": "git", "url": "git+https://github.com/iOfficeAI/OfficeCLI.git", "directory": "sdk/node" - Network accessline 10
"url": "git+https://github.com/iOfficeAI/OfficeCLI.git", - Network accessline 12
}, "bugs": { "url": "https://github.com/iOfficeAI/OfficeCLI/issues" - Network accessline 13
"bugs": { "url": "https://github.com/iOfficeAI/OfficeCLI/issues" }, - Network accessline 14
"url": "https://github.com/iOfficeAI/OfficeCLI/issues"
sdk/node/smoke.js
- Executable scriptline 1
Executable file
sdk/python/README.md
- Network accessline 3
A **thin** Python SDK for the [officecli](https://officecli.ai) **resident pipe**. It does one - Network accessline 30
python -m officecli install # runs officecli's official installer # …or directly: curl -fsSL https://d.officecli.ai/install.sh | bash - Network accessline 31
# …or directly: curl -fsSL https://d.officecli.ai/install.sh | bash # Windows (PowerShell): - Dangerous shell operationline 32
curl -fsSL https://d.officecli.ai/install.sh | bash - Network accessline 32
curl -fsSL https://d.officecli.ai/install.sh | bash - Network accessline 34
irm https://d.officecli.ai/install.ps1 | iex
sdk/python/demo.py
- Executable scriptline 1
#!/usr/bin/env python3
sdk/python/officecli.py
- Executable scriptline 1
Executable file - Network accessline 77
_INSTALL_SH_MIRROR = "https://d.officecli.ai/install.sh" - Network accessline 78
_INSTALL_SH_GITHUB = "https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh" - Network accessline 79
_INSTALL_PS1_MIRROR = "https://d.officecli.ai/install.ps1" - Network accessline 80
_INSTALL_PS1_GITHUB = "https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1" - Network accessline 84
"commands to the officecli binary, which must be installed separately. Install it:\n" " python -m officecli install # runs the official installer\n" " # or: curl -fsSL " + _INSTALL_SH_MIRROR + " | bash\n" - Network accessline 85
" python -m officecli install # runs the official installer\n" " # or: curl -fsSL " + _INSTALL_SH_MIRROR + " | bash\n" "Already installed elsewhere? pass binary=\"/path/to/officecli\"." - Dangerous shell operationline 86
" # or: curl -fsSL " + _INSTALL_SH_MIRROR + " | bash\n" - Network accessline 86
" # or: curl -fsSL " + _INSTALL_SH_MIRROR + " | bash\n" - Access to secretsline 103
[Credential-related source omitted] - Network accessline 144
def _send_unix(sock_path, line, connect_timeout): s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - Network accessline 145
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - Access to secretsline 293
[Credential-related source omitted] - Dangerous shell operationline 603
# (curl mirror || curl github) | bash — the subshell emits whichever fetch - Network accessline 603
# (curl mirror || curl github) | bash — the subshell emits whichever fetch - Dangerous shell operationline 606
sh = f"(curl -fsSL {_INSTALL_SH_MIRROR} 2>/dev/null || curl -fsSL {_INSTALL_SH_GITHUB}) | bash" - Network accessline 606
sh = f"(curl -fsSL {_INSTALL_SH_MIRROR} 2>/dev/null || curl -fsSL {_INSTALL_SH_GITHUB}) | bash" - Network accessline 609
raise OfficeCliError(r.returncode, f"officecli install failed (exit {r.returncode}). Run manually:\n" f" curl -fsSL {_INSTALL_SH_MIRROR} | bash") - Network accessline 610
f"officecli install failed (exit {r.returncode}). Run manually:\n" f" curl -fsSL {_INSTALL_SH_MIRROR} | bash") return None - Dangerous shell operationline 611
f" curl -fsSL {_INSTALL_SH_MIRROR} | bash") - Network accessline 611
f" curl -fsSL {_INSTALL_SH_MIRROR} | bash")
sdk/python/pyproject.toml
sdk/python/smoke.py
- Executable scriptline 1
Executable file
skills/morph-ppt-3d/SKILL.md
- Dangerous shell operationline 17
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 17
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 18
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex` - Network accessline 20
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases. - Dangerous shell operationline 73
curl -s "https://api.sketchfab.com/v3/search?type=models&q=[keyword]&downloadable=true&archives_flavours=glb" | python3 -c " - Network accessline 73
curl -s "https://api.sketchfab.com/v3/search?type=models&q=[keyword]&downloadable=true&archives_flavours=glb" \ - Network accessline 77
for m in data.get('results', [])[:5]: print(f\"Name: {m['name']}\") print(f\"URL: https://sketchfab.com/3d-models/{m['slug']}-{m['uid']}\") - Network accessline 78
print(f\"Name: {m['name']}\") print(f\"URL: https://sketchfab.com/3d-models/{m['slug']}-{m['uid']}\") print(f\"Likes: {m.get('likeCount', 0)}, License: {m.get('license', {}).get('label', 'unknown')}\") - Network accessline 79
print(f\"URL: https://sketchfab.com/3d-models/{m['slug']}-{m['uid']}\") - Network accessline 88
# Search results page — parse for download links curl -s "https://poly.pizza/api/search/[keyword]" 2>/dev/null - Network accessline 89
curl -s "https://poly.pizza/api/search/[keyword]" 2>/dev/null - Network accessline 94
# Direct download — no auth, no API, always works curl -L -o model.glb "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/main/Models/[ModelName]/glTF-Binary/[ModelName].glb" - Network accessline 95
curl -L -o model.glb "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/main/Models/[ModelName]/glTF-Binary/[ModelName].glb" - Network accessline 117
2. Low Poly Fox (Poly Pizza) URL: https://poly.pizza/m/xxx - Network accessline 118
URL: https://poly.pizza/m/xxx - Network accessline 122
3. Cartoon Fox (Sketchfab) URL: https://sketchfab.com/3d-models/fox-xxx - Network accessline 123
URL: https://sketchfab.com/3d-models/fox-xxx - Network accessline 137
# For Sketchfab (if user has the download URL) curl -L -o model.glb "[download_url]" - Network accessline 138
curl -L -o model.glb "[download_url]" - Network accessline 140
# For Khronos samples (always works) curl -L -o model.glb "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/main/Models/Fox/glTF-Binary/Fox.glb" - Network accessline 141
curl -L -o model.glb "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/main/Models/Fox/glTF-Binary/Fox.glb" - Network accessline 175
> > 1. **Sketchfab** (largest 3D model platform) > - Link: https://sketchfab.com/search?q=[keyword]&type=models&downloadable=true - Network accessline 176
> 1. **Sketchfab** (largest 3D model platform) > - Link: https://sketchfab.com/search?q=[keyword]&type=models&downloadable=true > - Filter steps: search keyword → check "Downloadable" → format "glTF" → sort by "Likes" - Network accessline 177
> - Link: https://sketchfab.com/search?q=[keyword]&type=models&downloadable=true - Network accessline 180
> - Note: some models require free registration to download > 2. **Poly Pizza** (all free low-poly) > - Link: https://poly.pizza/ - Network accessline 181
> 2. **Poly Pizza** (all free low-poly) > - Link: https://poly.pizza/ > - All CC0 licensed — click Download to get .glb directly - Network accessline 182
> - Link: https://poly.pizza/ > - All CC0 licensed — click Download to get .glb directly > - Best for: minimalist or cartoon-style presentations - Network accessline 184
> - Best for: minimalist or cartoon-style presentations > 3. **Sketchfab popular categories** > - Animals: https://sketchfab.com/search?q=animal&type=models&downloadable=true - Network accessline 185
> 3. **Sketchfab popular categories** > - Animals: https://sketchfab.com/search?q=animal&type=models&downloadable=true > - Food: https://sketchfab.com/search?q=food&type=models&downloadable=true - Network accessline 186
> - Animals: https://sketchfab.com/search?q=animal&type=models&downloadable=true - Network accessline 187
> - Food: https://sketchfab.com/search?q=food&type=models&downloadable=true - Network accessline 188
> - Tech: https://sketchfab.com/search?q=gadget&type=models&downloadable=true - Network accessline 189
> - Architecture: https://sketchfab.com/search?q=architecture&type=models&downloadable=true - Network accessline 190
> 4. **Free3D** (general free model site) > - Link: https://free3d.com/3d-models/glb > - Note: check the license type before use - Network accessline 191
> - Link: https://free3d.com/3d-models/glb - Network accessline 192
> - Note: check the license type before use > 5. **TurboSquid Free** (pro model site free section) > - Link: https://www.turbosquid.com/Search/3D-Models/free/glb - Network accessline 193
> 5. **TurboSquid Free** (pro model site free section) > - Link: https://www.turbosquid.com/Search/3D-Models/free/glb > - Network accessline 194
> - Link: https://www.turbosquid.com/Search/3D-Models/free/glb > > After downloading, share the .glb file with me. If the download is a .gltf folder, use Blender to convert it to .glb. - Network accessline 214
Always remind before confirming download: "Please check the model license before downloading. CC0 / CC BY = free to use; CC BY-NC = non-commercial only."
skills/morph-ppt/SKILL.md
- Dangerous shell operationline 16
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 16
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 17
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex` - Network accessline 19
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases.
skills/morph-ppt/reference/morph-helpers.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 28
YELLOW = Fore.YELLOW BLUE = Fore.CYAN NC = Style.RESET_ALL - Network accessline 29
BLUE = Fore.CYAN NC = Style.RESET_ALL except ImportError: - Network accessline 30
NC = Style.RESET_ALL - Network accessline 32
GREEN = RED = YELLOW = BLUE = NC = ""
skills/morph-ppt/reference/morph-helpers.sh
- Executable scriptline 1
#!/bin/bash
skills/morph-ppt/reference/styles/bw--brutalist-raw/build.sh
skills/morph-ppt/reference/styles/bw--mono-line/build.sh
skills/morph-ppt/reference/styles/bw--swiss-bauhaus/build.sh
skills/morph-ppt/reference/styles/dark--architectural-plan/build.sh
skills/morph-ppt/reference/styles/dark--blueprint-grid/build.sh
skills/morph-ppt/reference/styles/dark--circle-digital/build.sh
skills/morph-ppt/reference/styles/dark--cosmic-neon/build.sh
skills/morph-ppt/reference/styles/dark--cyber-future/build.sh
skills/morph-ppt/reference/styles/dark--diagonal-cut/build.sh
skills/morph-ppt/reference/styles/dark--editorial-story/build.sh
skills/morph-ppt/reference/styles/dark--investor-pitch/build.sh
- Executable scriptline 1
#!/bin/bash
skills/morph-ppt/reference/styles/dark--liquid-flow/build.sh
skills/morph-ppt/reference/styles/dark--luxury-minimal/build.sh
skills/morph-ppt/reference/styles/dark--neon-productivity/build.sh
skills/morph-ppt/reference/styles/dark--premium-navy/build.sh
skills/morph-ppt/reference/styles/dark--space-odyssey/build.sh
skills/morph-ppt/reference/styles/dark--spotlight-stage/build.sh
skills/morph-ppt/reference/styles/light--bold-type/build.sh
skills/morph-ppt/reference/styles/light--isometric-clean/build.sh
skills/morph-ppt/reference/styles/light--minimal-product/build.sh
skills/morph-ppt/reference/styles/light--watercolor-wash/build.sh
skills/morph-ppt/reference/styles/mixed--duotone-split/build.sh
skills/morph-ppt/reference/styles/vivid--candy-stripe/build.sh
skills/morph-ppt/reference/styles/vivid--playful-marketing/build.sh
skills/morph-ppt/reference/styles/warm--brand-refresh/build.sh
skills/morph-ppt/reference/styles/warm--earth-organic/build.sh
skills/morph-ppt/reference/styles/warm--playful-organic/build.sh
skills/officecli-academic-paper/SKILL.md
- Dangerous shell operationline 16
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 16
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 17
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex` - Network accessline 19
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases. - Network accessline 150
officecli add "$FILE" /body --type paragraph --prop text="Kramer, A., & Kramer, K. Z. (2020). The potential impact of the Covid-19 pandemic on occupational status. Journal of Vocational Behavior, 119, 103442." --prop size=12pt --prop lineSp - Network accessline 152
officecli add "$FILE" "/body/p[last()]" --type hyperlink --prop url="https://doi.org/10.1016/j.jvb.2020.103442" --prop text="https://doi.org/10.1016/j.jvb.2020.103442" - Network accessline 342
officecli add "$FILE" /body --type paragraph --prop text="Smith, J. (2024). Remote work and cohesion. Journal of Applied Psychology, 109(3), 412-430." --prop size=12pt --prop lineSpacing=2x --prop indent=720 --prop hangingIndent=720 # DOI h - Network accessline 344
officecli add "$FILE" "/body/p[last()]" --type hyperlink --prop url="https://doi.org/10.1037/apl0001123" --prop text="https://doi.org/10.1037/apl0001123"
skills/officecli-data-dashboard/SKILL.md
- Dangerous shell operationline 14
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 14
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 15
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex` - Network accessline 17
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases. - Network accessline 129
| jq '[.data.results[].path] | index("/Dashboard")') officecli raw-set "$FILE" /workbook --xpath "//x:sheets" --action insertbefore \ --xml "<bookViews xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"><workbookView acti - Network accessline 130
officecli raw-set "$FILE" /workbook --xpath "//x:sheets" --action insertbefore --xml "<bookViews xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"><workbookView activeTab=\"$DASH_IDX\" /></bookViews>" - Network accessline 131
--xml "<bookViews xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"><workbookView activeTab=\"$DASH_IDX\" /></bookViews>" - Network accessline 225
officecli add "$FILE" / --type namedrange --prop name=_xlnm.Print_Area --prop scope=Dashboard --prop 'refersTo=Dashboard!$A$1:$H$36' # 2. fit-to-page on Dashboard. officecli raw-set "$FILE" /Dashboard --xpath "//x:worksheet" --action prepen - Network accessline 226
# 2. fit-to-page on Dashboard. officecli raw-set "$FILE" /Dashboard --xpath "//x:worksheet" --action prepend --xml '<sheetPr xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><pageSetUpPr fitToPage="1"/></sheetPr>' # 3. Land - Network accessline 227
officecli raw-set "$FILE" /Dashboard --xpath "//x:worksheet" --action prepend --xml '<sheetPr xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><pageSetUpPr fitToPage="1"/></sheetPr>'
skills/officecli-docx/SKILL.md
- Dangerous shell operationline 12
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 12
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 13
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex` - Network accessline 15
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases. - Network accessline 301
officecli add "$FILE" "/body/p[2]" --type hyperlink --prop url="https://example.com" --prop text="our site"
skills/officecli-financial-model/SKILL.md
- Dangerous shell operationline 16
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 16
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 17
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex` - Network accessline 19
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases. - Network accessline 83
done # 3. fit-to-page landscape on Outputs sheet. officecli raw-set "$FILE" /Summary --xpath "//x:worksheet" --action prepend --xml '<sheetPr xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><pageSetUpPr fitToPage="1"/></sh - Network accessline 85
officecli raw-set "$FILE" /Summary --xpath "//x:worksheet" --action prepend --xml '<sheetPr xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><pageSetUpPr fitToPage="1"/></sheetPr>'
skills/officecli-pitch-deck/SKILL.md
- Dangerous shell operationline 16
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 16
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 17
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex` - Network accessline 19
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases.
skills/officecli-pptx/SKILL.md
- Dangerous shell operationline 12
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 12
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 13
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex` - Network accessline 15
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases. - Network accessline 366
`--prop link=slide[N]` for an in-deck jump (1-based; target slide must exist), `link=nextslide` / `firstslide` / `lastslide` / `previousslide` / `endshow` for named navigation, `link=https://...` for a URL, `--prop tooltip="..."` for hover
skills/officecli-word-form/SKILL.md
- Network accessline 17
if ! command -v officecli >/dev/null 2>&1; then curl -fsSL https://d.officecli.ai/install.sh | bash - Dangerous shell operationline 18
curl -fsSL https://d.officecli.ai/install.sh | bash - Network accessline 18
curl -fsSL https://d.officecli.ai/install.sh | bash - Network accessline 25
if (-not (Get-Command officecli -ErrorAction SilentlyContinue)) { irm https://d.officecli.ai/install.ps1 | iex - Network accessline 26
irm https://d.officecli.ai/install.ps1 | iex - Network accessline 34
If the install command above fails (e.g. blocked by security policy, no network access, or insufficient permissions), install manually — download the binary for your platform from https://github.com/iOfficeAI/OfficeCLI/releases — then re-ru - Network accessline 145
officecli raw-set "$FILE" /document --xpath "//w:sdt[w:sdtPr/w:tag/@w:val='dept']/w:sdtPr/w:dropDownList" --action append --xml '<w:listItem xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" w:displayText="Engi - Network accessline 146
--xpath "//w:sdt[w:sdtPr/w:tag/@w:val='dept']/w:sdtPr/w:dropDownList" \ --action append \ --xml '<w:listItem xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" w:displayText="Engineering" w:value="ENG"/><w:listItem x - Network accessline 148
--xml '<w:listItem xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" w:displayText="Engineering" w:value="ENG"/><w:listItem xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" w:displayText="Finance" - Dangerous shell operationline 184
officecli close "$FILE" 2>/dev/null; rm -f "$FILE" # preflight: clear stale resident / prior file (cold-start after CLI upgrade commonly leaks a resident) - Network accessline 229
officecli raw-set "$FILE" /document --xpath "//w:sdt[w:sdtPr/w:tag/@w:val='dept']/w:sdtPr/w:dropDownList" --action append --xml '<w:listItem xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" w:displayText="Engi - Network accessline 230
--xpath "//w:sdt[w:sdtPr/w:tag/@w:val='dept']/w:sdtPr/w:dropDownList" \ --action append \ --xml '<w:listItem xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" w:displayText="Engineering" w:value="Engineering"/><w:li - Network accessline 232
--xml '<w:listItem xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" w:displayText="Engineering" w:value="Engineering"/><w:listItem xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" w:displayText="F - Network accessline 246
officecli raw-set "$FILE" /document --xpath "//w:sdt[w:sdtPr/w:tag/@w:val='current_med']/w:sdtPr/w:comboBox" --action append --xml '<w:listItem xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" w:displayText="A - Network accessline 247
--xpath "//w:sdt[w:sdtPr/w:tag/@w:val='current_med']/w:sdtPr/w:comboBox" \ --action append \ --xml '<w:listItem xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" w:displayText="Antihypertensives" w:value="Antihypert - Network accessline 249
--xml '<w:listItem xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" w:displayText="Antihypertensives" w:value="Antihypertensives"/><w:listItem xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" w:di - Network accessline 285
|---|---| | `raw-set: 0 element(s) affected` | XPath did not match. Check the `tag` value and whether the SDT is block or inline. Fall back to `officecli raw $FILE /document` to read the real XML. | | `Error: prefix 'w' is not defined` | Mi - Network accessline 286
| `raw-set: 0 element(s) affected` | XPath did not match. Check the `tag` value and whether the SDT is block or inline. Fall back to `officecli raw $FILE /document` to read the real XML. | | `Error: prefix 'w' is not defined` | Missing `xml - Network accessline 287
| `Error: prefix 'w' is not defined` | Missing `xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"` on the fragment — every root element in `--xml` needs it. | - Network accessline 445
import sys, xml.etree.ElementTree as ET xml = sys.stdin.read(); pid = sys.argv[1] ns = {"w":"http://schemas.openxmlformats.org/wordprocessingml/2006/main","w14":"http://schemas.microsoft.com/office/word/2010/wordml"} - Network accessline 446
xml = sys.stdin.read(); pid = sys.argv[1] ns = {"w":"http://schemas.openxmlformats.org/wordprocessingml/2006/main","w14":"http://schemas.microsoft.com/office/word/2010/wordml"} for p, u in ns.items(): ET.register_namespace(p, u) - Network accessline 447
ns = {"w":"http://schemas.openxmlformats.org/wordprocessingml/2006/main","w14":"http://schemas.microsoft.com/office/word/2010/wordml"} - Network accessline 454
officecli raw-set "$FILE" /document --xpath "//w:p[@w14:paraId='$PID']" --action replace --xml "<w:sdt xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/20 - Network accessline 455
--xpath "//w:p[@w14:paraId='$PID']" \ --action replace \ --xml "<w:sdt xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\"><w:sdtPr><w:alias w:val=\ - Network accessline 457
--xml "<w:sdt xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\"><w:sdtPr><w:alias w:val=\"Authorization\"/><w:tag w:val=\"auth_para\"/><w:lock w:val=\ - Network accessline 584
{"command":"add","parent":"/body","type":"sdt","props":{"type":"text","alias":"Full Name","tag":"full_name","text":"Enter name"}}, {"command":"add","parent":"/body","type":"sdt","props":{"type":"dropdown","alias":"Department","tag":"dept" - Network accessline 585
{"command":"add","parent":"/body","type":"sdt","props":{"type":"dropdown","alias":"Department","tag":"dept"}}, {"command":"raw-set","part":"/document","xpath":"//w:sdt[w:sdtPr/w:tag/@w:val='dept']/w:sdtPr/w:dropDownList","action":"append" - Network accessline 586
{"command":"raw-set","part":"/document","xpath":"//w:sdt[w:sdtPr/w:tag/@w:val='dept']/w:sdtPr/w:dropDownList","action":"append","xml":"<w:listItem xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" w:displayText=\"Engi
skills/officecli-xlsx/SKILL.md
- Dangerous shell operationline 12
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 12
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - Network accessline 13
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex` - Network accessline 15
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases.
skills/officecli/SKILL.md
- Network accessline 15
# macOS / Linux curl -fsSL https://d.officecli.ai/install.sh | bash - Dangerous shell operationline 16
curl -fsSL https://d.officecli.ai/install.sh | bash - Network accessline 16
curl -fsSL https://d.officecli.ai/install.sh | bash - Network accessline 18
# Windows (PowerShell) irm https://d.officecli.ai/install.ps1 | iex - Network accessline 19
irm https://d.officecli.ai/install.ps1 | iex - Network accessline 160
Open the printed `http://localhost:N` URL. Click to select; shift/cmd/ctrl+click to multi-select; drag from empty space to box-select. PPT/Word use blue outline; Excel uses native-style green selection (double-click cell to edit inline; dra
src/officecli/BatchTypes.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/BlankDocCreator.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 180
Name = new EnumValue<CompatSettingNameValues>(CompatSettingNameValues.CompatibilityMode), Val = new StringValue("15"), Uri = new StringValue("http://schemas.microsoft.com/office/word") - Network accessline 181
Val = new StringValue("15"), Uri = new StringValue("http://schemas.microsoft.com/office/word") }, - Network accessline 182
Uri = new StringValue("http://schemas.microsoft.com/office/word") - Network accessline 186
Name = new EnumValue<CompatSettingNameValues>(CompatSettingNameValues.OverrideTableStyleFontSizeAndJustification), Val = new StringValue("1"), Uri = new StringValue("http://schemas.microsoft.com/offic - Network accessline 187
Val = new StringValue("1"), Uri = new StringValue("http://schemas.microsoft.com/office/word") }, - Network accessline 188
Uri = new StringValue("http://schemas.microsoft.com/office/word") - Network accessline 192
Name = new EnumValue<CompatSettingNameValues>(CompatSettingNameValues.EnableOpenTypeFeatures), Val = new StringValue("1"), Uri = new StringValue("http://schemas.microsoft.com/office/word") - Network accessline 193
Val = new StringValue("1"), Uri = new StringValue("http://schemas.microsoft.com/office/word") }, - Network accessline 194
Uri = new StringValue("http://schemas.microsoft.com/office/word") - Network accessline 198
Name = new EnumValue<CompatSettingNameValues>(CompatSettingNameValues.DoNotFlipMirrorIndents), Val = new StringValue("1"), Uri = new StringValue("http://schemas.microsoft.com/office/word") - Network accessline 199
Val = new StringValue("1"), Uri = new StringValue("http://schemas.microsoft.com/office/word") }, - Network accessline 200
Uri = new StringValue("http://schemas.microsoft.com/office/word") - Network accessline 204
Name = new EnumValue<CompatSettingNameValues>(CompatSettingNameValues.DifferentiateMultirowTableHeaders), Val = new StringValue("1"), Uri = new StringValue("http://schemas.microsoft.com/office/word") - Network accessline 205
Val = new StringValue("1"), Uri = new StringValue("http://schemas.microsoft.com/office/word") } - Network accessline 206
Uri = new StringValue("http://schemas.microsoft.com/office/word") - Network accessline 260
// fails MarkupCompatibility validation because the wps prefix is // not in scope at the AlternateContent element. document.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); - Network accessline 261
// not in scope at the AlternateContent element. document.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); document.AddNamespaceDeclaration("m", "http://schemas.openxmlform - Network accessline 262
document.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); - Network accessline 263
document.AddNamespaceDeclaration("m", "http://schemas.openxmlformats.org/officeDocument/2006/math"); - Network accessline 265
document.AddNamespaceDeclaration("o", "urn:schemas-microsoft-com:office:office"); document.AddNamespaceDeclaration("w10", "urn:schemas-microsoft-com:office:word"); document.AddNamespaceDeclaration("wne", "http://schemas.micr - Network accessline 266
document.AddNamespaceDeclaration("w10", "urn:schemas-microsoft-com:office:word"); document.AddNamespaceDeclaration("wne", "http://schemas.microsoft.com/office/word/2006/wordml"); document.AddNamespaceDeclaration("wp", "http: - Network accessline 267
document.AddNamespaceDeclaration("wne", "http://schemas.microsoft.com/office/word/2006/wordml"); - Network accessline 268
document.AddNamespaceDeclaration("wp", "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"); - Network accessline 269
document.AddNamespaceDeclaration("wp14", "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing"); - Network accessline 274
// helpers on every paragraph, so leaving this undeclared was a // real schema violation, not cosmetic. document.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml"); - Network accessline 275
// real schema violation, not cosmetic. document.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml"); document.AddNamespaceDeclaration("a", "http://schemas.openxmlformats.org/drawingml/2006 - Network accessline 276
document.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml"); - Network accessline 277
document.AddNamespaceDeclaration("a", "http://schemas.openxmlformats.org/drawingml/2006/main"); - Network accessline 278
document.AddNamespaceDeclaration("pic", "http://schemas.openxmlformats.org/drawingml/2006/picture"); - Network accessline 279
document.AddNamespaceDeclaration("wps", "http://schemas.microsoft.com/office/word/2010/wordprocessingShape"); - Network accessline 280
document.AddNamespaceDeclaration("wpg", "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup"); - Network accessline 281
document.AddNamespaceDeclaration("wpi", "http://schemas.microsoft.com/office/word/2010/wordprocessingInk"); - Network accessline 282
document.AddNamespaceDeclaration("wpc", "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas"); - Network accessline 283
document.AddNamespaceDeclaration("w15", "http://schemas.microsoft.com/office/word/2012/wordml"); - Network accessline 410
// child element w14:ligatures") even though Word itself tolerates them. // Mirrors the document-root mc:Ignorable handling above. stylesPart.Styles.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/20 - Network accessline 411
// Mirrors the document-root mc:Ignorable handling above. stylesPart.Styles.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml"); stylesPart.Styles.MCAttributes ??= new DocumentFormat.OpenXm - Network accessline 412
stylesPart.Styles.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml");
src/officecli/CommandBuilder.Add.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 281
Message = $"unrecognized_latex_command: {tok}", Code = "unrecognized_latex_command", Suggestion = "Check the command spelling; see https://katex.org/docs/supported.html for supported s - Network accessline 282
Code = "unrecognized_latex_command", Suggestion = "Check the command spelling; see https://katex.org/docs/supported.html for supported syntax.", }); - Network accessline 283
Suggestion = "Check the command spelling; see https://katex.org/docs/supported.html for supported syntax.",
src/officecli/CommandBuilder.Batch.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Dangerous shell operationline 43
+ "Reliable idiom: close -> rm -> create -> batch -> close. rm BEFORE create matters: with the " - Network accessline 180
Message = $"unrecognized_latex_command: {tok}", Code = "unrecognized_latex_command", Suggestion = "Check the command spelling; see https://katex.org/docs/supported.html for supported syntax.", - Network accessline 181
Code = "unrecognized_latex_command", Suggestion = "Check the command spelling; see https://katex.org/docs/supported.html for supported syntax.", }).ToList(); - Network accessline 182
Suggestion = "Check the command spelling; see https://katex.org/docs/supported.html for supported syntax.", - Possible obfuscationline 341
// System.Text.Json.Parse with "'<U+FEFF>' is an invalid start of - Possible obfuscationline 703
=> !string.IsNullOrEmpty(s) && s[0] == '<U+FEFF>' ? s.Substring(1) : s;
src/officecli/CommandBuilder.Check.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.Dump.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.GetQuery.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.Goto.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.Help.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.Import.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.IntegrationStubs.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.Mark.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.Plugins.cs
src/officecli/CommandBuilder.Raw.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.Refresh.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.Save.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.Set.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.SetCore.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 123
Message = $"unrecognized_latex_command: {tok}", Code = "unrecognized_latex_command", Suggestion = "Check the command spelling; see https://katex.org/docs/supported.html for supported syntax.", - Network accessline 124
Code = "unrecognized_latex_command", Suggestion = "Check the command spelling; see https://katex.org/docs/supported.html for supported syntax.", }); - Network accessline 125
Suggestion = "Check the command spelling; see https://katex.org/docs/supported.html for supported syntax.",
src/officecli/CommandBuilder.View.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.ViewCore.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.Watch.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/CommandBuilder.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/AttributeFilter.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/BatchCompat.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/BatchExecutor.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 56
Message = $"unrecognized_latex_command: {tok}", Code = "unrecognized_latex_command", Suggestion = "Check the command spelling; see https://katex.org/docs/supported.html for supported syntax.", - Network accessline 57
Code = "unrecognized_latex_command", Suggestion = "Check the command spelling; see https://katex.org/docs/supported.html for supported syntax.", }); - Network accessline 58
Suggestion = "Check the command spelling; see https://katex.org/docs/supported.html for supported syntax.",
src/officecli/Core/Bcp47LanguageTag.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/CellPropHints.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/CharsetDecoder.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Chart/ChartEmbeddedDataSync.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Chart/ChartExBuilder.Setter.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 676
IReadOnlyList<CX.Series> allSeries, string kind, string rawValue) { const string cxNs = "http://schemas.microsoft.com/office/drawing/2014/chartex"; - Network accessline 678
const string cxNs = "http://schemas.microsoft.com/office/drawing/2014/chartex";
src/officecli/Core/Chart/ChartExBuilder.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 63
// (0x800A03EC), even though the OpenXmlValidator does not flag it. Real // Excel always declares xmlns:a on cx:chartSpace; match that. chartSpace.AddNamespaceDeclaration("a", "http://schemas.openxmlformats.org/drawingml/200 - Network accessline 65
chartSpace.AddNamespaceDeclaration("a", "http://schemas.openxmlformats.org/drawingml/2006/main"); - Network accessline 76
{ var el = new OpenXmlUnknownElement("cx", "axisId", "http://schemas.microsoft.com/office/drawing/2014/chartex"); - Network accessline 77
var el = new OpenXmlUnknownElement("cx", "axisId", "http://schemas.microsoft.com/office/drawing/2014/chartex"); el.SetAttribute(new OpenXmlAttribute("val", "", val)); - Network accessline 78
"http://schemas.microsoft.com/office/drawing/2014/chartex"); - Network accessline 309
// Uses raw elements for cx:units since the SDK doesn't expose // a typed CX.Units class. const string cxAxisNs = "http://schemas.microsoft.com/office/drawing/2014/chartex"; - Network accessline 310
// a typed CX.Units class. const string cxAxisNs = "http://schemas.microsoft.com/office/drawing/2014/chartex"; var pctAxis = new CX.Axis { Id = 2 }; - Network accessline 311
const string cxAxisNs = "http://schemas.microsoft.com/office/drawing/2014/chartex"; - Network accessline 995
// around by appending a raw OpenXmlUnknownElement carrying // the correct form. const string cxNs = "http://schemas.microsoft.com/office/drawing/2014/chartex"; - Network accessline 996
// the correct form. const string cxNs = "http://schemas.microsoft.com/office/drawing/2014/chartex"; var lp = new CX.SeriesLayoutProperties(); - Network accessline 997
const string cxNs = "http://schemas.microsoft.com/office/drawing/2014/chartex";
src/officecli/Core/Chart/ChartExResources.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Chart/ChartExStyleBuilder.cs
src/officecli/Core/Chart/ChartHelper.Advanced.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Chart/ChartHelper.Axis.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Chart/ChartHelper.Builder.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Chart/ChartHelper.Reader.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 1624
var spPr = parent.ChildElements .FirstOrDefault(e => e.LocalName == "spPr" && e.NamespaceUri == "http://schemas.openxmlformats.org/drawingml/2006/chart"); - Network accessline 1625
.FirstOrDefault(e => e.LocalName == "spPr" && e.NamespaceUri == "http://schemas.openxmlformats.org/drawingml/2006/chart"); if (spPr == null) return null; - Network accessline 1626
&& e.NamespaceUri == "http://schemas.openxmlformats.org/drawingml/2006/chart"); - Network accessline 1647
var txPr = parent.ChildElements .FirstOrDefault(e => e.LocalName == "txPr" && e.NamespaceUri == "http://schemas.openxmlformats.org/drawingml/2006/chart"); - Network accessline 1648
.FirstOrDefault(e => e.LocalName == "txPr" && e.NamespaceUri == "http://schemas.openxmlformats.org/drawingml/2006/chart"); if (txPr == null) return null; - Network accessline 1649
&& e.NamespaceUri == "http://schemas.openxmlformats.org/drawingml/2006/chart");
src/officecli/Core/Chart/ChartHelper.Setter.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Chart/ChartHelper.SetterHelpers.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Chart/ChartHelper.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Chart/ChartPresets.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Chart/ChartSvgRenderer.CxExtract.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Chart/ChartSvgRenderer.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/CliException.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/CliLogger.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/ColorMath.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/CompoundFile.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/CsvSepDeclaration.cs
src/officecli/Core/DeferredStdout.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/DelimitedText.cs
src/officecli/Core/Diagram/DiagramCompiler.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Diagram/DiagramModel.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Diagram/DiagramStyles.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Diagram/FlowchartLayout.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Diagram/MermaidImageRenderer.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 52
// then the public CDN as a fallback. private const string MirrorUrl = "https://d.officecli.ai/assets/mermaid-" + MermaidVersion + ".min.js"; - Network accessline 53
private const string MirrorUrl = "https://d.officecli.ai/assets/mermaid-" + MermaidVersion + ".min.js"; private const string CdnUrl = - Network accessline 54
"https://d.officecli.ai/assets/mermaid-" + MermaidVersion + ".min.js"; - Network accessline 56
"https://cdn.jsdelivr.net/npm/mermaid@" + MermaidVersion + "/dist/mermaid.min.js"; - Network accessline 69
private const string ElkVersion = "0.1"; private const string MermaidEsmUrl = "https://cdn.jsdelivr.net/npm/mermaid@" + MermaidVersion + "/dist/mermaid.esm.min.mjs"; - Network accessline 70
private const string MermaidEsmUrl = "https://cdn.jsdelivr.net/npm/mermaid@" + MermaidVersion + "/dist/mermaid.esm.min.mjs"; private const string ElkEsmUrl = - Network accessline 71
"https://cdn.jsdelivr.net/npm/mermaid@" + MermaidVersion + "/dist/mermaid.esm.min.mjs"; - Network accessline 72
private const string ElkEsmUrl = "https://cdn.jsdelivr.net/npm/@mermaid-js/layout-elk@" + ElkVersion + "/dist/mermaid-layout-elk.esm.min.mjs"; - Network accessline 73
"https://cdn.jsdelivr.net/npm/@mermaid-js/layout-elk@" + ElkVersion
src/officecli/Core/Diagram/MermaidParser.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Diagram/SequenceLayout.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/DisplayText.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/DocumentIssue.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/DocumentLimits.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/DocumentNode.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/DrawingColorBuilder.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 181
private static void AppendColorTransformChildren(OpenXmlElement colorEl, List<(string Name, int Val)> transforms) { const string aNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 182
{ const string aNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; foreach (var (name, pct) in transforms) - Network accessline 183
const string aNs = "http://schemas.openxmlformats.org/drawingml/2006/main";
src/officecli/Core/DrawingEffectsHelper.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/EditDistance.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/ElementRollback.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/EmuConverter.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/ExcelStyleManager.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/ExtendedPropertiesHandler.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/FileSource.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 10
/// Supports: /// - Local file path: "/tmp/model.glb", "C:\media\video.mp4" /// - HTTP(S) URL: "https://example.com/video.mp4" - Network accessline 11
/// - Local file path: "/tmp/model.glb", "C:\media\video.mp4" /// - HTTP(S) URL: "https://example.com/video.mp4" /// - Data URI: "data:video/mp4;base64,AAAA..." - Network accessline 12
/// - HTTP(S) URL: "https://example.com/video.mp4"
src/officecli/Core/FindHelpers.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/FontMetricsReader.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Formula/FormulaEvaluator.Complex.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Formula/FormulaEvaluator.Functions.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Formula/FormulaEvaluator.Helpers.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Formula/FormulaEvaluator.References.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Formula/FormulaEvaluator.Regression.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 237
else { int nr = newGrid.GetLength(0), nc = newGrid.GetLength(1); - Network accessline 238
{ int nr = newGrid.GetLength(0), nc = newGrid.GetLength(1); if (k == 1) - Network accessline 239
int nr = newGrid.GetLength(0), nc = newGrid.GetLength(1); - Network accessline 247
} else if (nr == k) { m = nc; predCols = ToCols(newGrid, k, m, byRow: true); outShape = new FormulaResult?[1, m]; } else if (nc == k) { m = nr; predCols = ToCols(newGrid, k, m, byRow: false); outShape = new FormulaRe - Network accessline 248
else if (nr == k) { m = nc; predCols = ToCols(newGrid, k, m, byRow: true); outShape = new FormulaResult?[1, m]; } else if (nc == k) { m = nr; predCols = ToCols(newGrid, k, m, byRow: false); outShape = new FormulaResult?[m, 1]; } - Network accessline 249
else if (nc == k) { m = nr; predCols = ToCols(newGrid, k, m, byRow: false); outShape = new FormulaResult?[m, 1]; }
src/officecli/Core/Formula/FormulaEvaluator.Securities.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 179
{ if (!CoupArgs(args, out var s, out var m, out var f, out var b)) return FormulaResult.Error("#NUM!"); // 30/360 bases derive NC from the period less the elapsed part; actual - Network accessline 180
if (!CoupArgs(args, out var s, out var m, out var f, out var b)) return FormulaResult.Error("#NUM!"); // 30/360 bases derive NC from the period less the elapsed part; actual // bases count the real days settlement→next coupo - Network accessline 181
// 30/360 bases derive NC from the period less the elapsed part; actual
src/officecli/Core/Formula/FormulaEvaluator.Solver.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Formula/FormulaEvaluator.SpecialFunctions.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Formula/FormulaEvaluator.Spill.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 318
int curR = g.GetLength(0), curC = g.GetLength(1); int nr = OptInt(args, 1) ?? curR; int nc = OptInt(args, 2) ?? curC; - Network accessline 319
int nr = OptInt(args, 1) ?? curR; int nc = OptInt(args, 2) ?? curC; if (nr < curR || nc < curC) return FormulaResult.Error("#VALUE!"); - Network accessline 320
int nc = OptInt(args, 2) ?? curC; - Network accessline 321
if (nr < curR || nc < curC) return FormulaResult.Error("#VALUE!");
src/officecli/Core/Formula/FormulaEvaluator.SpillLambda.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Formula/FormulaEvaluator.Statistics.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Formula/FormulaEvaluator.Statistics2.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Formula/FormulaEvaluator.Statistics3.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Formula/FormulaEvaluator.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Formula/FormulaParser.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 40
private const string KatexDocsHint = "See https://katex.org/docs/supported.html for supported syntax."; - Network accessline 341
{ var colorEl = wRPr.ChildElements.FirstOrDefault(e => e.LocalName == "color"); colorHex = colorEl?.GetAttribute("val", "http://schemas.openxmlformats.org/wordprocessingml/2006/main").Value; - Network accessline 342
var colorEl = wRPr.ChildElements.FirstOrDefault(e => e.LocalName == "color"); colorHex = colorEl?.GetAttribute("val", "http://schemas.openxmlformats.org/wordprocessingml/2006/main").Value; } - Network accessline 343
colorHex = colorEl?.GetAttribute("val", "http://schemas.openxmlformats.org/wordprocessingml/2006/main").Value; - Network accessline 347
{ var sty = rPr.ChildElements.FirstOrDefault(e => e.LocalName == "sty"); var styVal = sty?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value; - Network accessline 348
var sty = rPr.ChildElements.FirstOrDefault(e => e.LocalName == "sty"); var styVal = sty?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value; var hasNor = rPr.Child - Network accessline 349
var styVal = sty?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value; - Network accessline 354
// read m:scr back, so those runs round-tripped as plain text. var scr = rPr.ChildElements.FirstOrDefault(e => e.LocalName == "scr"); var scrVal = scr?.GetAttribute("val", "http://schemas.openxmlforma - Network accessline 355
var scr = rPr.ChildElements.FirstOrDefault(e => e.LocalName == "scr"); var scrVal = scr?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value; if (hasNor) - Network accessline 356
var scrVal = scr?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value; - Network accessline 476
var radPr = element.ChildElements.FirstOrDefault(e => e.LocalName == "radPr"); var hideDeg = radPr?.ChildElements.FirstOrDefault(e => e.LocalName == "degHide"); var isHidden = hideDeg != null && (hideDeg.GetA - Network accessline 477
var hideDeg = radPr?.ChildElements.FirstOrDefault(e => e.LocalName == "degHide"); var isHidden = hideDeg != null && (hideDeg.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value == "1" - Network accessline 478
var isHidden = hideDeg != null && (hideDeg.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value == "1" - Network accessline 479
|| hideDeg.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value == "true"); - Network accessline 488
var naryPr = element.ChildElements.FirstOrDefault(e => e.LocalName == "naryPr"); var chrElem = naryPr?.ChildElements.FirstOrDefault(e => e.LocalName == "chr"); var chr = chrElem?.GetAttribute("val", "http://s - Network accessline 489
var chrElem = naryPr?.ChildElements.FirstOrDefault(e => e.LocalName == "chr"); var chr = chrElem?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "∫"; // ECMA-376: omitted m:chr = i - Network accessline 490
var chr = chrElem?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "∫"; // ECMA-376: omitted m:chr = integral (Word omits it for ∫); NOT ∑ - Network accessline 512
// stay empty, so distinguish "missing element" from "empty val". var begin = begChr != null ? (begChr.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "") - Network accessline 513
var begin = begChr != null ? (begChr.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "") : "("; - Network accessline 514
? (begChr.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "") - Network accessline 515
: "("; var end = endChr != null ? (endChr.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "") - Network accessline 516
var end = endChr != null ? (endChr.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "") : ")"; - Network accessline 517
? (endChr.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "") - Network accessline 632
var barPr = element.ChildElements.FirstOrDefault(e => e.LocalName == "barPr"); var posElem = barPr?.ChildElements.FirstOrDefault(e => e.LocalName == "pos"); var posVal = posElem?.GetAttribute("val", "http://s - Network accessline 633
var posElem = barPr?.ChildElements.FirstOrDefault(e => e.LocalName == "pos"); var posVal = posElem?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value; // ECMA-376: m:bar' - Network accessline 634
var posVal = posElem?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value; - Network accessline 643
var accPr = element.ChildElements.FirstOrDefault(e => e.LocalName == "accPr"); var chrElem = accPr?.ChildElements.FirstOrDefault(e => e.LocalName == "chr"); var chr = chrElem?.GetAttribute("val", "http://sche - Network accessline 644
var chrElem = accPr?.ChildElements.FirstOrDefault(e => e.LocalName == "chr"); var chr = chrElem?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "\u0302"; var cmd = - Network accessline 645
var chr = chrElem?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "\u0302"; - Network accessline 741
var gcPr = element.ChildElements.FirstOrDefault(e => e.LocalName == "groupChrPr"); var chrEl = gcPr?.ChildElements.FirstOrDefault(e => e.LocalName == "chr"); var chr = chrEl?.GetAttribute("val", "http://schem - Network accessline 742
var chrEl = gcPr?.ChildElements.FirstOrDefault(e => e.LocalName == "chr"); var chr = chrEl?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value; var posEl = gcPr?.ChildElem - Network accessline 743
var chr = chrEl?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value; - Network accessline 744
var posEl = gcPr?.ChildElements.FirstOrDefault(e => e.LocalName == "pos"); var pos = posEl?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value; // ECMA-376 defaults: omitt - Network accessline 745
var pos = posEl?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value; - Network accessline 798
var mcPr = mc.ChildElements.FirstOrDefault(e => e.LocalName == "mcPr"); var jc = mcPr?.ChildElements.FirstOrDefault(e => e.LocalName == "mcJc"); var val = jc?.GetAttribute("val", "http://schemas.openxmlformats.org/of - Network accessline 799
var jc = mcPr?.ChildElements.FirstOrDefault(e => e.LocalName == "mcJc"); var val = jc?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value; switch (val) - Network accessline 800
var val = jc?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value; - Network accessline 871
var naryPr = element.ChildElements.FirstOrDefault(e => e.LocalName == "naryPr"); var chrElem = naryPr?.ChildElements.FirstOrDefault(e => e.LocalName == "chr"); var chr = chrElem?.GetAttribute("val", "http://s - Network accessline 872
var chrElem = naryPr?.ChildElements.FirstOrDefault(e => e.LocalName == "chr"); var chr = chrElem?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "∫"; // ECMA-376: omitted m:chr = i - Network accessline 873
var chr = chrElem?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "∫"; // ECMA-376: omitted m:chr = integral (Word omits it for ∫); NOT ∑ - Network accessline 887
var begChr = dPr?.ChildElements.FirstOrDefault(e => e.LocalName == "begChr"); var endChr = dPr?.ChildElements.FirstOrDefault(e => e.LocalName == "endChr"); var begin = begChr?.GetAttribute("val", "http://sche - Network accessline 888
var endChr = dPr?.ChildElements.FirstOrDefault(e => e.LocalName == "endChr"); var begin = begChr?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "("; var end = endC - Network accessline 889
var begin = begChr?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "("; - Network accessline 890
var end = endChr?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? ")"; - Network accessline 921
var chrElem = accPr?.ChildElements.FirstOrDefault(e => e.LocalName == "chr"); // ECMA-376: omitted m:chr = U+0302 (hat) — mirror the LaTeX path's default. var chr = chrElem?.GetAttribute("val", "http://schema - Network accessline 922
// ECMA-376: omitted m:chr = U+0302 (hat) — mirror the LaTeX path's default. var chr = chrElem?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "\u0302"; return base - Network accessline 923
var chr = chrElem?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value ?? "\u0302"; - Network accessline 2659
var fPr = fraction.ChildElements.FirstOrDefault(e => e.LocalName == "fPr"); var type = fPr?.ChildElements.FirstOrDefault(e => e.LocalName == "type"); var val = type?.GetAttribute("val", "http://schemas.openxmlformats.org/off - Network accessline 2660
var type = fPr?.ChildElements.FirstOrDefault(e => e.LocalName == "type"); var val = type?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value; return val == "noBar"; - Network accessline 2661
var val = type?.GetAttribute("val", "http://schemas.openxmlformats.org/officeDocument/2006/math").Value;
src/officecli/Core/Formula/ModernFunctionQualifier.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Formula/SharedFormulaResolver.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/FormulaRefShifter.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/GenericXmlQuery.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 714
private static readonly Dictionary<string, string> CommonNamespaces = new() { ["w"] = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", - Network accessline 715
{ ["w"] = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", ["r"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - Network accessline 716
["w"] = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", - Network accessline 717
["r"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - Network accessline 718
["a"] = "http://schemas.openxmlformats.org/drawingml/2006/main", - Network accessline 719
["p"] = "http://schemas.openxmlformats.org/presentationml/2006/main", - Network accessline 720
["x"] = "http://schemas.openxmlformats.org/spreadsheetml/2006/main", - Network accessline 721
["wp"] = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", - Network accessline 722
["mc"] = "http://schemas.openxmlformats.org/markup-compatibility/2006", - Network accessline 723
["c"] = "http://schemas.openxmlformats.org/drawingml/2006/chart", - Network accessline 724
["xdr"] = "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing", - Network accessline 725
["wps"] = "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", - Network accessline 726
["wp14"] = "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing",
src/officecli/Core/HtmlPreviewHelper.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 90
{ var svg = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 120 120\" " + - Network accessline 91
var svg = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 120 120\" " + "preserveAspectRatio=\"xMidYMid meet\">" + - Network accessline 92
"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 120 120\" " +
src/officecli/Core/HtmlScreenshot.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/HyperlinkUriValidator.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/IDocumentHandler.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/ImageSource.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 14
/// - Local file path: "/tmp/logo.png", "C:\images\photo.jpg" /// - Data URI: "data:image/png;base64,iVBOR..." /// - HTTP(S) URL: "https://example.com/image.png" - Network accessline 15
/// - Data URI: "data:image/png;base64,iVBOR..." /// - HTTP(S) URL: "https://example.com/image.png" /// - Network accessline 16
/// - HTTP(S) URL: "https://example.com/image.png"
src/officecli/Core/Installer.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/IssueSubtypes.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/KatexAssets.cs
src/officecli/Core/LocaleFontRegistry.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Markdown/MarkdownModel.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Markdown/MarkdownParser.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/MsysPathHint.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/MutationSelectorGuard.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/NativeRenderFailure.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/NumericText.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/OfficeCliMetadata.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 44
private const string CpNs = "http://schemas.openxmlformats.org/package/2006/metadata/core-properties"; - Network accessline 45
private const string DcNs = "http://purl.org/dc/elements/1.1/"; - Network accessline 46
private const string DctermsNs = "http://purl.org/dc/terms/"; - Network accessline 47
private const string XsiNs = "http://www.w3.org/2001/XMLSchema-instance";
src/officecli/Core/OfficeDefaultFonts.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/OfficeDefaultThemeColors.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/OleHelper.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/OutputFormatter.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/ParseHelpers.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Possible obfuscationline 377
// Trim() but tests with `"<U+FEFF>true"` still threw. Use a stricter - Possible obfuscationline 386
'<U+FEFF>', // BOM / zero-width no-break space - Possible obfuscationline 387
'<U+200B>', // zero-width space - Possible obfuscationline 388
'<U+200C>', // zero-width non-joiner - Possible obfuscationline 389
'<U+200D>', // zero-width joiner - Possible obfuscationline 390
'<U+2060>', // word joiner
src/officecli/Core/PathAliases.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/PathIdentity.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/PathIndex.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/PipeTempDirGuard.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/PivotTableHelper.Cache.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/PivotTableHelper.Definition.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 363
if (needsFillDownExt) { const string x14Ns = "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"; - Network accessline 364
{ const string x14Ns = "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"; var pfExt = new PivotFieldExtension { Uri = "{2946ED86-A175-432a-8AC1-64E0C546D7DE}" }; - Network accessline 365
const string x14Ns = "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main";
src/officecli/Core/PivotTableHelper.Parse.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/PivotTableHelper.Readback.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/PivotTableHelper.Render.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/PivotTableHelper.Set.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 267
// reflect the label repetition. bool enable = ParseHelpers.IsTruthy(value); const string x14Ns = "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"; - Network accessline 268
bool enable = ParseHelpers.IsTruthy(value); const string x14Ns = "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"; var extLst = pivotDef.GetFirstChild<PivotTableDefinitionExtensionList> - Network accessline 269
const string x14Ns = "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main";
src/officecli/Core/PivotTableHelper.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Plugins/DumpReaderInvoker.cs
src/officecli/Core/Plugins/ExporterInvoker.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Plugins/FormatHandlerProxy.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Plugins/FormatHandlerSession.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Plugins/PluginManifest.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Plugins/PluginProcess.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Plugins/PluginRegistry.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/PowerPointPngBackend.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/RawXmlHelper.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 302
{ // p:sld — ECMA-376 CT_Slide [("http://schemas.openxmlformats.org/presentationml/2006/main", "sld")] = - Network accessline 303
// p:sld — ECMA-376 CT_Slide [("http://schemas.openxmlformats.org/presentationml/2006/main", "sld")] = new[] { "cSld", "clrMapOvr", "transition", "timing", "extLst" }, - Network accessline 304
[("http://schemas.openxmlformats.org/presentationml/2006/main", "sld")] = - Network accessline 305
new[] { "cSld", "clrMapOvr", "transition", "timing", "extLst" }, // p:sldLayout — CT_SlideLayout [("http://schemas.openxmlformats.org/presentationml/2006/main", "sldLayout")] = - Network accessline 306
// p:sldLayout — CT_SlideLayout [("http://schemas.openxmlformats.org/presentationml/2006/main", "sldLayout")] = new[] { "cSld", "clrMapOvr", "transition", "timing", "hf", "extLst" }, - Network accessline 307
[("http://schemas.openxmlformats.org/presentationml/2006/main", "sldLayout")] = - Network accessline 308
new[] { "cSld", "clrMapOvr", "transition", "timing", "hf", "extLst" }, // p:sldMaster — CT_SlideMaster [("http://schemas.openxmlformats.org/presentationml/2006/main", "sldMaster")] = - Network accessline 309
// p:sldMaster — CT_SlideMaster [("http://schemas.openxmlformats.org/presentationml/2006/main", "sldMaster")] = new[] { "cSld", "clrMap", "sldLayoutIdLst", "transition", "timing", "hf", "txStyles", "extLst" }, - Network accessline 310
[("http://schemas.openxmlformats.org/presentationml/2006/main", "sldMaster")] = - Network accessline 314
// is created with its txBody; without reorder, style lands AFTER // txBody and strict consumers reject the file. [("http://schemas.openxmlformats.org/presentationml/2006/main", "sp")] = - Network accessline 315
// txBody and strict consumers reject the file. [("http://schemas.openxmlformats.org/presentationml/2006/main", "sp")] = new[] { "nvSpPr", "spPr", "style", "txBody", "extLst" }, - Network accessline 316
[("http://schemas.openxmlformats.org/presentationml/2006/main", "sp")] = - Network accessline 365
private static readonly XNamespace McNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 366
"http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 427
private static readonly Dictionary<string, string> CommonNamespaces = new() { ["w"] = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", - Network accessline 428
{ ["w"] = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", ["r"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - Network accessline 429
["w"] = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", - Network accessline 430
["r"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - Network accessline 431
["a"] = "http://schemas.openxmlformats.org/drawingml/2006/main", - Network accessline 432
["p"] = "http://schemas.openxmlformats.org/presentationml/2006/main", - Network accessline 433
["x"] = "http://schemas.openxmlformats.org/spreadsheetml/2006/main", - Network accessline 434
["wp"] = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", - Network accessline 435
["mc"] = "http://schemas.openxmlformats.org/markup-compatibility/2006", - Network accessline 436
["c"] = "http://schemas.openxmlformats.org/drawingml/2006/chart", - Network accessline 437
["xdr"] = "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing", - Network accessline 438
["wps"] = "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", - Network accessline 439
["wp14"] = "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing", - Network accessline 554
// Ensure common OpenXML namespaces are available TryAddNamespace(nsManager, "w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main"); - Network accessline 555
TryAddNamespace(nsManager, "w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main"); - Network accessline 556
TryAddNamespace(nsManager, "r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); - Network accessline 557
TryAddNamespace(nsManager, "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); - Network accessline 558
TryAddNamespace(nsManager, "p", "http://schemas.openxmlformats.org/presentationml/2006/main"); - Network accessline 559
TryAddNamespace(nsManager, "x", "http://schemas.openxmlformats.org/spreadsheetml/2006/main"); - Network accessline 560
TryAddNamespace(nsManager, "wp", "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"); - Network accessline 561
TryAddNamespace(nsManager, "mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"); - Network accessline 562
TryAddNamespace(nsManager, "c", "http://schemas.openxmlformats.org/drawingml/2006/chart"); - Network accessline 563
TryAddNamespace(nsManager, "xdr", "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"); - Network accessline 916
System.Xml.Linq.XNamespace ct = "http://schemas.openxmlformats.org/package/2006/content-types"; - Network accessline 917
"http://schemas.openxmlformats.org/package/2006/content-types"; - Network accessline 1054
void ScanDrawingAnchors(OpenXmlPart part) { const string XdrNs = "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"; - Network accessline 1055
{ const string XdrNs = "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"; try - Network accessline 1056
const string XdrNs = "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"; - Possible obfuscationline 1449
if (s[0] == '<U+FEFF>') { s = s[1..].TrimStart(); continue; }
src/officecli/Core/Rendering/IRenderer.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Rendering/RenderCapabilities.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Rendering/RenderOptions.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Rendering/RenderOutputKind.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Rendering/RenderResult.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Rendering/RendererRegistry.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/SchemaKeyNormalizer.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/SchemaOrder.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/SelectorCommaSplit.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/SelectorPositionalIndex.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/SkillInstaller.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/SlideSizeDefaults.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/SpacingConverter.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/SsrfGuard.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/StyleUnsupportedHints.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/SvgImageHelper.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 21
{ public const string SvgExtensionUri = "{96DAC541-7B7A-43D3-8B79-37D633B846F1}"; public const string SvgNamespace = "http://schemas.microsoft.com/office/drawing/2016/SVG/main"; - Network accessline 22
public const string SvgExtensionUri = "{96DAC541-7B7A-43D3-8B79-37D633B846F1}"; public const string SvgNamespace = "http://schemas.microsoft.com/office/drawing/2016/SVG/main"; public const string RelsNamespace = "http://schemas.open - Network accessline 23
public const string SvgNamespace = "http://schemas.microsoft.com/office/drawing/2016/SVG/main"; - Network accessline 24
public const string RelsNamespace = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
src/officecli/Core/TableStyles/Families/DarkStyle1.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TableStyles/Families/DarkStyle2.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TableStyles/Families/LightStyle1.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TableStyles/Families/LightStyle2.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TableStyles/Families/LightStyle3.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TableStyles/Families/MediumStyle1.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TableStyles/Families/MediumStyle2.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TableStyles/Families/MediumStyle3.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TableStyles/Families/MediumStyle4.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TableStyles/Families/ThemedStyle1.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TableStyles/Families/ThemedStyle2.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TableStyles/TableStyleRegistry.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TableStyles/TableStyleResolver.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TableStyles/TableStyleTypes.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TemplateMerger.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TextEscape.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/ThemeColorResolver.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/ThemeHandler.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/ThreeAssets.cs
src/officecli/Core/TrackingPropertyDictionary.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/TypedAttributeFallback.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 113
if (string.IsNullOrEmpty(nsUri) || string.IsNullOrEmpty(prefix)) { nsUri = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 114
{ nsUri = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; prefix = "w"; - Network accessline 115
nsUri = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 238
if (string.IsNullOrEmpty(nsUri) || string.IsNullOrEmpty(prefix)) { nsUri = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 239
{ nsUri = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; prefix = "w"; - Network accessline 240
nsUri = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
src/officecli/Core/Units.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/UpdateChecker.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 36
// fastest path for most users; github is the safety net when CF or the // mirror is unreachable. private const string PrimaryBase = "https://d.officecli.ai"; - Network accessline 37
// mirror is unreachable. private const string PrimaryBase = "https://d.officecli.ai"; private const string FallbackBase = "https://github.com/iOfficeAI/OfficeCLI"; - Network accessline 38
private const string PrimaryBase = "https://d.officecli.ai"; - Network accessline 39
private const string FallbackBase = "https://github.com/iOfficeAI/OfficeCLI";
src/officecli/Core/Watch/WatchMark.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Watch/WatchNotifier.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/Watch/WatchServer.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 313
if (existingPort.HasValue) { var url = existingPort.Value > 0 ? $" at http://localhost:{existingPort.Value}" : ""; - Network accessline 314
{ var url = existingPort.Value > 0 ? $" at http://localhost:{existingPort.Value}" : ""; throw new InvalidOperationException($"Another watch process is already running{url} for {_filePath}"); - Network accessline 315
var url = existingPort.Value > 0 ? $" at http://localhost:{existingPort.Value}" : ""; - Network accessline 328
_port = ((IPEndPoint)_tcpListener.LocalEndpoint!).Port; WriteMarker(); Console.WriteLine($"Watch: http://localhost:{_port}"); - Network accessline 329
WriteMarker(); Console.WriteLine($"Watch: http://localhost:{_port}"); Console.WriteLine($"Watching: {_filePath}"); - Network accessline 330
Console.WriteLine($"Watch: http://localhost:{_port}");
src/officecli/Core/WordHtmlRefresh.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/WordIndentAliases.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/WordNumFmtRenderer.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/WordPageDefaults.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/WordPdfBackend.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/WordStrictAttributeSanitizer.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 20
internal static class WordStrictAttributeSanitizer { private const string W = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 22
private const string W = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
src/officecli/Core/WordTocBuilder.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/WorksheetBloatFilter.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Core/XmlTextValidator.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 9
/// <summary> /// Validates user-supplied text against the XML 1.0 character production /// (https://www.w3.org/TR/xml/#charsets). Open XML files are XML 1.0, so - Network accessline 10
/// Validates user-supplied text against the XML 1.0 character production /// (https://www.w3.org/TR/xml/#charsets). Open XML files are XML 1.0, so /// codepoints outside this set cannot be persisted without raising - Network accessline 11
/// (https://www.w3.org/TR/xml/#charsets). Open XML files are XML 1.0, so
src/officecli/Handlers/DocumentHandlerFactory.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 449
private static readonly System.Xml.Linq.XNamespace RelsNs = "http://schemas.openxmlformats.org/package/2006/relationships"; - Network accessline 450
"http://schemas.openxmlformats.org/package/2006/relationships";
src/officecli/Handlers/Excel/ExcelBatchEmitter.Elements.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelBatchEmitter.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelDataFormatter.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Add.Cells.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Add.Cf.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 183
Uri = "{B025F937-C7B1-47D3-B67F-A62EFF666E3E}" }; dbRuleExt.AddNamespaceDeclaration("x14", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"); - Network accessline 184
}; dbRuleExt.AddNamespaceDeclaration("x14", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"); dbRuleExt.Append(new X14.Id(dbGuid)); - Network accessline 185
dbRuleExt.AddNamespaceDeclaration("x14", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"); - Network accessline 268
var x14Cf = new X14.ConditionalFormatting(); x14Cf.AddNamespaceDeclaration("xm", "http://schemas.microsoft.com/office/excel/2006/main"); - Network accessline 269
x14Cf.AddNamespaceDeclaration("xm", "http://schemas.microsoft.com/office/excel/2006/main");
src/officecli/Handlers/Excel/ExcelHandler.Add.Chart.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 265
new Drawing.GraphicData(cxChartRef) { Uri = "http://schemas.microsoft.com/office/drawing/2014/chartex" - Network accessline 266
{ Uri = "http://schemas.microsoft.com/office/drawing/2014/chartex" } - Network accessline 267
Uri = "http://schemas.microsoft.com/office/drawing/2014/chartex" - Network accessline 352
new Drawing.GraphicData(chartRef) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/chart" - Network accessline 353
{ Uri = "http://schemas.openxmlformats.org/drawingml/2006/chart" } - Network accessline 354
Uri = "http://schemas.openxmlformats.org/drawingml/2006/chart"
src/officecli/Handlers/Excel/ExcelHandler.Add.Drawings.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 517
if (picCNvPrDec != null) { const string a16Ns = "http://schemas.microsoft.com/office/drawing/2014/main"; - Network accessline 518
{ const string a16Ns = "http://schemas.microsoft.com/office/drawing/2014/main"; var wsDrawingRoot = picDrawingsPart.WorksheetDrawing; - Network accessline 519
const string a16Ns = "http://schemas.microsoft.com/office/drawing/2014/main"; - Network accessline 1105
{ spkExt = new WorksheetExtension { Uri = "{05C60535-1F16-4fd2-B633-E4A46CF9E463}" }; spkExt.AddNamespaceDeclaration("x14", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"); - Network accessline 1106
spkExt = new WorksheetExtension { Uri = "{05C60535-1F16-4fd2-B633-E4A46CF9E463}" }; spkExt.AddNamespaceDeclaration("x14", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"); spkGroups = new X14.Sparklin - Network accessline 1107
spkExt.AddNamespaceDeclaration("x14", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"); - Network accessline 1117
// Excel silently drops the entire extLst block and no sparklines render. var spkWsRoot = spkWs; const string spkMcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 1118
var spkWsRoot = spkWs; const string spkMcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; const string spkX14Ns = "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"; - Network accessline 1119
const string spkMcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 1120
const string spkX14Ns = "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main";
src/officecli/Handlers/Excel/ExcelHandler.Add.Tables.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Add.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 1375
{ const string relNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 1376
const string relNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; foreach (var element in root.Descendants().Prepend(root)) - Network accessline 1377
"http://schemas.openxmlformats.org/officeDocument/2006/relationships";
src/officecli/Handlers/Excel/ExcelHandler.ChartCache.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.CheckGeneralPrecision.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.CheckNumericOverflow.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.CheckOverflow.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.DumpSupport.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.DynamicArray.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 31
// typed Metadata element constructor expects a bare root element.) private const string DynamicArrayMetadataXml = "<metadata xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" " + - Network accessline 32
private const string DynamicArrayMetadataXml = "<metadata xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" " + "xmlns:xda=\"http://schemas.microsoft.com/office/spreadsheetml/2017/dynamicarray\">" + - Network accessline 33
"<metadata xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" " + - Network accessline 34
"xmlns:xda=\"http://schemas.microsoft.com/office/spreadsheetml/2017/dynamicarray\">" +
src/officecli/Handlers/Excel/ExcelHandler.FormulaCache.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Helpers.Cell.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Dangerous shell operationline 228
var rm = System.Text.RegularExpressions.Regex.Match(range.Trim(), - Network accessline 595
// opened cleanly on Windows — the flag only affects officecli's own // cell-write auto-grow behavior. private const string AutoExpandNamespaceUri = "https://officecli.ai/2025/autoexpand"; - Network accessline 596
// cell-write auto-grow behavior. private const string AutoExpandNamespaceUri = "https://officecli.ai/2025/autoexpand"; private const string AutoExpandNamespacePrefix = "ae"; - Network accessline 597
private const string AutoExpandNamespaceUri = "https://officecli.ai/2025/autoexpand";
src/officecli/Handlers/Excel/ExcelHandler.Helpers.Chart.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 276
private const string ExcelChartExUri = "http://schemas.microsoft.com/office/drawing/2014/chartex"; - Network accessline 316
{ var rId = child.GetAttributes().FirstOrDefault(a => a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); - Network accessline 317
var rId = child.GetAttributes().FirstOrDefault(a => a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); if (rId.Value != null) return rId.Value; - Network accessline 318
a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
src/officecli/Handlers/Excel/ExcelHandler.Helpers.ConditionalFormat.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 70
internal static void EnsureWorksheetX14Ignorable(Worksheet ws) { const string mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 71
{ const string mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; const string x14Ns = "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"; - Network accessline 72
const string mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 73
const string x14Ns = "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"; - Network accessline 93
{ const string cfExtUri = "{78C0D931-6437-407d-A8EE-F0AAD7539E65}"; const string x14Ns = "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"; - Network accessline 95
const string x14Ns = "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main";
src/officecli/Handlers/Excel/ExcelHandler.Helpers.Drawing.cs
src/officecli/Handlers/Excel/ExcelHandler.Helpers.Node.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 901
// honor the i18n extension (Excel for Mac / RTL locales) pick it up. // The element is a leaf empty marker; absence means LTR (default). const string xlsNs = "http://schemas.openxmlformats.org/spreadsheetml/2006/main"; - Network accessline 902
// The element is a leaf empty marker; absence means LTR (default). const string xlsNs = "http://schemas.openxmlformats.org/spreadsheetml/2006/main"; OpenXmlElement BuildRtlMarker() => - Network accessline 903
const string xlsNs = "http://schemas.openxmlformats.org/spreadsheetml/2006/main";
src/officecli/Handlers/Excel/ExcelHandler.Helpers.Ole.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Helpers.Sheet.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Helpers.TableStyle.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Helpers.Validation.cs
src/officecli/Handlers/Excel/ExcelHandler.Helpers.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.Charts.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.Pictures.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.Shapes.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 98
// Inline SVG overlay for the geometry. sb.Append("<svg style=\"position:absolute;inset:0;width:100%;height:100%;overflow:visible\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\" xmlns=\"http://www.w3.org/2000/svg\">"); - Network accessline 99
sb.Append("<svg style=\"position:absolute;inset:0;width:100%;height:100%;overflow:visible\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\" xmlns=\"http://www.w3.org/2000/svg\">");
src/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 879
else { var cell = ctx.CellMap.TryGetValue((r, c), out var nc) ? nc : null; - Network accessline 880
{ var cell = ctx.CellMap.TryGetValue((r, c), out var nc) ? nc : null; var style = GetCellStyleCss(cell, ctx.Stylesheet, ctx.RenderStyles, ctx.FrozenRows, ctx.FrozenCols, r, c, ctx.FrozenLeftOffsets, ctx.Froze - Network accessline 881
var cell = ctx.CellMap.TryGetValue((r, c), out var nc) ? nc : null; - Network accessline 1037
// occupied cell, a merged region, a hidden column, or the sheet edge. double extra = 0; for (int nc = c + 1; nc <= ctx.MaxCol; nc++) - Network accessline 1038
double extra = 0; for (int nc = c + 1; nc <= ctx.MaxCol; nc++) { - Network accessline 1039
for (int nc = c + 1; nc <= ctx.MaxCol; nc++)
src/officecli/Handlers/Excel/ExcelHandler.Import.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Query.RowWhere.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Query.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Remove.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.RichValueImage.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 29
public partial class ExcelHandler { private const string RichValueRelRelType = "http://schemas.microsoft.com/office/2022/10/relationships/richValueRel"; - Network accessline 30
{ private const string RichValueRelRelType = "http://schemas.microsoft.com/office/2022/10/relationships/richValueRel"; private const string RichValueRelContentType = "application/vnd.ms-excel.richvaluerel+xml"; - Network accessline 31
private const string RichValueRelRelType = "http://schemas.microsoft.com/office/2022/10/relationships/richValueRel"; - Network accessline 32
private const string RichValueRelContentType = "application/vnd.ms-excel.richvaluerel+xml"; private static readonly XNamespace RichDataNs = "http://schemas.microsoft.com/office/spreadsheetml/2017/richdata"; private static readonly X - Network accessline 33
private static readonly XNamespace RichDataNs = "http://schemas.microsoft.com/office/spreadsheetml/2017/richdata"; - Network accessline 34
private static readonly XNamespace RichValueRelNs = "http://schemas.microsoft.com/office/spreadsheetml/2022/richvaluerel"; - Network accessline 35
private static readonly XNamespace OoxmlRelNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 41
private const string RdRichValueTypesXml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + "<rvTypesInfo xmlns=\"http://schemas.microsoft.com/office/spreadsheetml/2017/richdata2\" " + - Network accessline 42
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + "<rvTypesInfo xmlns=\"http://schemas.microsoft.com/office/spreadsheetml/2017/richdata2\" " + "xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibil - Network accessline 43
"<rvTypesInfo xmlns=\"http://schemas.microsoft.com/office/spreadsheetml/2017/richdata2\" " + - Network accessline 44
"xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x\" " + - Network accessline 45
"xmlns:x=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">" +
src/officecli/Handlers/Excel/ExcelHandler.Selector.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Set.Cells.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Set.Charts.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Set.Drawings.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Set.Ranges.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Set.RowsCols.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Set.Sheet.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Set.Tables.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Set.Workbook.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.Set.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Excel/ExcelHandler.SheetShift.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 260
if (cid != null && int.TryParse(cid.Text, out var c)) { var nc = colMarkerShift(c); - Network accessline 261
{ var nc = colMarkerShift(c); if (nc != c) { cid.Text = nc.ToString(); drDirty = true; } - Network accessline 262
var nc = colMarkerShift(c); - Network accessline 263
if (nc != c) { cid.Text = nc.ToString(); drDirty = true; }
src/officecli/Handlers/Excel/ExcelHandler.Slicer.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 51
// silently strips the slicer parts on open with no schema error. private const string SlicerListExtUri = "{A8765BA9-456A-4dab-B4F3-ACF838C121DE}"; private const string SlicerDrawingNsUri = "http://schemas.microsoft.com/office - Network accessline 52
private const string SlicerListExtUri = "{A8765BA9-456A-4dab-B4F3-ACF838C121DE}"; private const string SlicerDrawingNsUri = "http://schemas.microsoft.com/office/drawing/2010/slicer"; private const string X14NsUri = - Network accessline 53
private const string SlicerDrawingNsUri = "http://schemas.microsoft.com/office/drawing/2010/slicer"; - Network accessline 54
private const string X14NsUri = "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"; - Network accessline 55
private const string McNsUri = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 56
// Pivot-backed slicer drawing uses a14 (2010/main), not a15 (2012/main). // Excel-generated reference files use a14; a15 gets the drawing removed. private const string A14NsUri = "http://schemas.microsoft.com/office/dra - Network accessline 57
// Excel-generated reference files use a14; a15 gets the drawing removed. private const string A14NsUri = "http://schemas.microsoft.com/office/drawing/2010/main"; private const string XNsUri = "http://schem - Network accessline 58
private const string A14NsUri = "http://schemas.microsoft.com/office/drawing/2010/main"; - Network accessline 59
private const string XNsUri = "http://schemas.openxmlformats.org/spreadsheetml/2006/main"; - Network accessline 639
drawingsPart.WorksheetDrawing = new XDR.WorksheetDrawing(); drawingsPart.WorksheetDrawing.AddNamespaceDeclaration( "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); - Network accessline 640
drawingsPart.WorksheetDrawing.AddNamespaceDeclaration( "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); drawingsPart.WorksheetDrawing.Save(); - Network accessline 641
"a", "http://schemas.openxmlformats.org/drawingml/2006/main");
src/officecli/Handlers/Excel/ExcelHandler.View.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/ExcelHandler.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/PowerPointHandler.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 947
StylePart = styleActualRid, }) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/diagram" })); - Network accessline 948
}) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/diagram" })); saSpTree.AppendChild(gf); - Network accessline 949
{ Uri = "http://schemas.openxmlformats.org/drawingml/2006/diagram" })); - Network accessline 1165
const string m3dRelType = "http://schemas.microsoft.com/office/2017/06/relationships/model3d"; - Network accessline 1901
const string ControlRelType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/control"; - Network accessline 1902
const string ActiveXCT = "application/vnd.ms-office.activeX+xml"; const string BinRelType = "http://schemas.microsoft.com/office/2006/relationships/activeXControlBinary"; const string BinCT = "application/vnd - Network accessline 1903
const string BinRelType = "http://schemas.microsoft.com/office/2006/relationships/activeXControlBinary"; - Network accessline 2241
else if (host is PresentationPart ppHost && ppHost.Presentation != null) { const string RelNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 2242
{ const string RelNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; var changed = false; - Network accessline 2243
const string RelNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 2756
/// Custom binary ExtendedParts attached directly to the presentation part — /// e.g. Google Slides' ppt/metadata (rel type /// http://customschemas.google.com/relationships/presentationmetadata), - Network accessline 2757
/// e.g. Google Slides' ppt/metadata (rel type /// http://customschemas.google.com/relationships/presentationmetadata), /// referenced by <c><go:slidesCustomData r:id="rIdN"></c> inside the - Network accessline 2758
/// http://customschemas.google.com/relationships/presentationmetadata), - Network accessline 3385
const string ControlRelType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/control"; - Network accessline 3386
const string ImageRelType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"; - Network accessline 3448
var ns = "http://schemas.openxmlformats.org/drawingml/2006/diagram"; - Network accessline 3508
// External hyperlinks on diagram nodes live as hyperlink rels. try { dataHlinks = ReadExternalHyperlinksOf(ddp); } catch { } const string dspNs = "http://schemas.microsoft.com/office/drawing/2008/dia - Network accessline 3509
try { dataHlinks = ReadExternalHyperlinksOf(ddp); } catch { } const string dspNs = "http://schemas.microsoft.com/office/drawing/2008/diagram"; var ext = ddp.DataModelRoot?.Descendants().FirstOrDefault - Network accessline 3510
const string dspNs = "http://schemas.microsoft.com/office/drawing/2008/diagram"; - Network accessline 3596
var cnv = sib.Descendants().FirstOrDefault(e => e.LocalName == "cNvPr" && e.NamespaceUri == "http://schemas.openxmlformats.org/presentationml/2006/main"); - Network accessline 3597
e.LocalName == "cNvPr" && e.NamespaceUri == "http://schemas.openxmlformats.org/presentationml/2006/main"); var idAttr = cnv?.GetAttributes().FirstOrDefault(a => a.LocalName == "id"); - Network accessline 3598
&& e.NamespaceUri == "http://schemas.openxmlformats.org/presentationml/2006/main"); - Network accessline 4002
try { slideDoc = System.Xml.Linq.XDocument.Parse(slideXml); } catch { return result; } System.Xml.Linq.XNamespace mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 4003
catch { return result; } System.Xml.Linq.XNamespace mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; System.Xml.Linq.XNamespace rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships" - Network accessline 4004
System.Xml.Linq.XNamespace mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 4005
System.Xml.Linq.XNamespace rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 4006
System.Xml.Linq.XNamespace am3dNs = "http://schemas.microsoft.com/office/drawing/2017/model3d"; - Network accessline 4007
System.Xml.Linq.XNamespace aNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 4143
try { slideDoc = System.Xml.Linq.XDocument.Parse(slideXml); } catch { return result; } System.Xml.Linq.XNamespace pNs = "http://schemas.openxmlformats.org/presentationml/2006/main"; - Network accessline 4144
catch { return result; } System.Xml.Linq.XNamespace pNs = "http://schemas.openxmlformats.org/presentationml/2006/main"; System.Xml.Linq.XNamespace rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 4145
System.Xml.Linq.XNamespace pNs = "http://schemas.openxmlformats.org/presentationml/2006/main"; - Network accessline 4146
System.Xml.Linq.XNamespace rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 4147
System.Xml.Linq.XNamespace aNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 4148
const string oleUri = "http://schemas.openxmlformats.org/presentationml/2006/ole"; - Network accessline 4491
// Set-side path re-writes them as <a:lum>. Don't double-emit. if (kid.LocalName is "lumOff" or "lumMod" && kid.NamespaceUri == "http://schemas.openxmlformats.org/drawingml/2006/main") - Network accessline 4492
if (kid.LocalName is "lumOff" or "lumMod" && kid.NamespaceUri == "http://schemas.openxmlformats.org/drawingml/2006/main") continue; - Network accessline 4493
&& kid.NamespaceUri == "http://schemas.openxmlformats.org/drawingml/2006/main") - Network accessline 4547
const string relNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
src/officecli/Handlers/Pptx/PowerPointHandler.Add.Diagram.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Add.Media.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 571
foreach (var kid in blipBC.ChildElements.ToList()) { if (kid.NamespaceUri != "http://schemas.openxmlformats.org/drawingml/2006/main") continue; - Network accessline 572
{ if (kid.NamespaceUri != "http://schemas.openxmlformats.org/drawingml/2006/main") continue; if (kid is Drawing.LuminanceEffect existingLum) - Network accessline 573
if (kid.NamespaceUri != "http://schemas.openxmlformats.org/drawingml/2006/main") continue; - Network accessline 954
// p14:media extension (PowerPoint 2010+) var p14Media = new DocumentFormat.OpenXml.Office2010.PowerPoint.Media { Embed = mediaRelId }; p14Media.AddNamespaceDeclaration("p14", "http://schemas.microsoft.com/of - Network accessline 956
p14Media.AddNamespaceDeclaration("p14", "http://schemas.microsoft.com/office/powerpoint/2010/main"); - Network accessline 1152
var oleGraphicData = new Drawing.GraphicData(oleObj) { Uri = "http://schemas.openxmlformats.org/presentationml/2006/ole", - Network accessline 1153
{ Uri = "http://schemas.openxmlformats.org/presentationml/2006/ole", }; - Network accessline 1154
Uri = "http://schemas.openxmlformats.org/presentationml/2006/ole",
src/officecli/Handlers/Pptx/PowerPointHandler.Add.Misc.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 2003
// Build mc:AlternateContent programmatically (same pattern as morph transition) var mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 2004
var mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 2005
var pNs = "http://schemas.openxmlformats.org/presentationml/2006/main"; - Network accessline 2006
var aNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 2007
var rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 2008
var pslzNs = "http://schemas.microsoft.com/office/powerpoint/2016/slidezoom"; - Network accessline 2009
var p166Ns = "http://schemas.microsoft.com/office/powerpoint/2016/6/main"; - Network accessline 2010
var a16Ns = "http://schemas.microsoft.com/office/drawing/2014/main";
src/officecli/Handlers/Pptx/PowerPointHandler.Add.Model3D.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 13
public partial class PowerPointHandler { private const string Am3dNs = "http://schemas.microsoft.com/office/drawing/2017/model3d"; - Network accessline 14
{ private const string Am3dNs = "http://schemas.microsoft.com/office/drawing/2017/model3d"; private const string Model3dRelType = "http://schemas.microsoft.com/office/2017/06/relationships/model3d"; - Network accessline 15
private const string Am3dNs = "http://schemas.microsoft.com/office/drawing/2017/model3d"; - Network accessline 16
private const string Model3dRelType = "http://schemas.microsoft.com/office/2017/06/relationships/model3d"; - Network accessline 75
// Namespaces var mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 76
var mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 77
var pNs = "http://schemas.openxmlformats.org/presentationml/2006/main"; - Network accessline 78
var aNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 79
var rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 80
var a16Ns = "http://schemas.microsoft.com/office/drawing/2014/main"; - Network accessline 233
Dictionary<string, string> properties, GlbBoundingBox bounds) { var aNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 234
{ var aNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; var rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 235
var aNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 236
var rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
src/officecli/Handlers/Pptx/PowerPointHandler.Add.Shape.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Add.Slide.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Add.Table.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 233
var graphic = new Drawing.Graphic( new Drawing.GraphicData(table) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/table" } - Network accessline 234
new Drawing.GraphicData(table) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/table" }
src/officecli/Handlers/Pptx/PowerPointHandler.Add.Text.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 50
// PPT equations are embedded as: a:p > a14:m > m:oMathPara > m:oMath var mathPara = new M.Paragraph(oMath); var a14mXml = $"<a14:m xmlns:a14=\"http://schemas.microsoft.com/office/drawing/2010/main\">{mathPar - Network accessline 52
var a14mXml = $"<a14:m xmlns:a14=\"http://schemas.microsoft.com/office/drawing/2010/main\">{mathPara.OuterXml}</a14:m>"; - Network accessline 82
// Build mc:AlternateContent > mc:Choice(Requires="a14") > a14:m > m:oMathPara var a14mElement = new OpenXmlUnknownElement("a14", "m", "http://schemas.microsoft.com/office/drawing/2010/main"); - Network accessline 83
var a14mElement = new OpenXmlUnknownElement("a14", "m", "http://schemas.microsoft.com/office/drawing/2010/main"); - Network accessline 107
var eqSlide = GetSlide(eqSlidePart); if (eqSlide.LookupNamespace("a14") == null) eqSlide.AddNamespaceDeclaration("a14", "http://schemas.microsoft.com/office/drawing/2010/main"); - Network accessline 108
if (eqSlide.LookupNamespace("a14") == null) eqSlide.AddNamespaceDeclaration("a14", "http://schemas.microsoft.com/office/drawing/2010/main"); if (eqSlide.LookupNamespace("mc") == null) - Network accessline 109
eqSlide.AddNamespaceDeclaration("a14", "http://schemas.microsoft.com/office/drawing/2010/main"); - Network accessline 110
if (eqSlide.LookupNamespace("mc") == null) eqSlide.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"); var currentIgnorable = eqSlide.MCAttributes?.Ignorable?.Val - Network accessline 111
eqSlide.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
src/officecli/Handlers/Pptx/PowerPointHandler.Add.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Align.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Animations.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 170
if (gd == null) return false; if (gd.Descendants<Drawing.Charts.ChartReference>().Any()) return true; const string cxNs = "http://schemas.microsoft.com/office/drawing/2014/chartex"; - Network accessline 171
if (gd.Descendants<Drawing.Charts.ChartReference>().Any()) return true; const string cxNs = "http://schemas.microsoft.com/office/drawing/2014/chartex"; return gd.ChildElements.Any(e => e.LocalName == "chart" && e.NamespaceUr - Network accessline 172
const string cxNs = "http://schemas.microsoft.com/office/drawing/2014/chartex"; - Network accessline 452
if (_p15PrstTokens.TryGetValue(typeName, out var prstValue)) { var p15Ns = "http://schemas.microsoft.com/office/powerpoint/2012/main"; - Network accessline 453
{ var p15Ns = "http://schemas.microsoft.com/office/powerpoint/2012/main"; var elem = new OpenXmlUnknownElement("p15", "prstTrans", p15Ns); - Network accessline 454
var p15Ns = "http://schemas.microsoft.com/office/powerpoint/2012/main"; - Network accessline 523
"prism" => new DocumentFormat.OpenXml.Office2010.PowerPoint.PrismTransition(), "cube" => new OpenXmlUnknownElement("p", "cube", "http://schemas.openxmlformats.org/presentationml/2006/main"), - Network accessline 524
"cube" => new OpenXmlUnknownElement("p", "cube", "http://schemas.openxmlformats.org/presentationml/2006/main"), "rotate" => new DocumentFormat.OpenXml.Office2010.PowerPoint.PrismTransition { IsContent = true }, - Network accessline 525
"http://schemas.openxmlformats.org/presentationml/2006/main"), - Network accessline 555
var p159Ns = "http://schemas.microsoft.com/office/powerpoint/2015/09/main"; - Network accessline 566
if (isP14Transition) { var p14Ns = "http://schemas.microsoft.com/office/powerpoint/2010/main"; - Network accessline 567
{ var p14Ns = "http://schemas.microsoft.com/office/powerpoint/2010/main"; InsertTransitionWithMcWrapper(slide, transElem!, "p14", p14Ns, speed, durationMs); - Network accessline 568
var p14Ns = "http://schemas.microsoft.com/office/powerpoint/2010/main"; - Network accessline 591
TransitionSpeedValues? speed, string? durationMs) { var mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 592
{ var mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; var pNs = "http://schemas.openxmlformats.org/presentationml/2006/main"; - Network accessline 593
var mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 594
var pNs = "http://schemas.openxmlformats.org/presentationml/2006/main"; - Network accessline 604
choiceTrans.SetAttribute(new OpenXmlAttribute("", "spd", null!, ((IEnumValue)speed.Value).Value)); if (durationMs != null) choiceTrans.SetAttribute(new OpenXmlAttribute("p14", "dur", "http://schemas.microsoft.com/office/ - Network accessline 605
if (durationMs != null) choiceTrans.SetAttribute(new OpenXmlAttribute("p14", "dur", "http://schemas.microsoft.com/office/powerpoint/2010/main", durationMs)); // Re-serialize the child element as unknown so SDK preserves - Network accessline 606
choiceTrans.SetAttribute(new OpenXmlAttribute("p14", "dur", "http://schemas.microsoft.com/office/powerpoint/2010/main", durationMs)); - Network accessline 643
if (nsPrefix != "p14") { try { slide.AddNamespaceDeclaration("p14", "http://schemas.microsoft.com/office/powerpoint/2010/main"); } catch { } - Network accessline 644
{ try { slide.AddNamespaceDeclaration("p14", "http://schemas.microsoft.com/office/powerpoint/2010/main"); } catch { } } - Network accessline 645
try { slide.AddNamespaceDeclaration("p14", "http://schemas.microsoft.com/office/powerpoint/2010/main"); } catch { }
src/officecli/Handlers/Pptx/PowerPointHandler.Background.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 510
// compatibility with files that already carry the invalid element). var hfEl = slide.ChildElements.FirstOrDefault(c => c.LocalName == "hf" && c.NamespaceUri == "http://schemas.openxmlformats.org/presentationml/2006/main - Network accessline 511
var hfEl = slide.ChildElements.FirstOrDefault(c => c.LocalName == "hf" && c.NamespaceUri == "http://schemas.openxmlformats.org/presentationml/2006/main"); static string? Bool(string v) => string.IsNullOrEmpty(v) ? null : - Network accessline 512
&& c.NamespaceUri == "http://schemas.openxmlformats.org/presentationml/2006/main");
src/officecli/Handlers/Pptx/PowerPointHandler.Chart.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 39
new Drawing.GraphicData(chartRef) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/chart" - Network accessline 40
{ Uri = "http://schemas.openxmlformats.org/drawingml/2006/chart" } - Network accessline 41
Uri = "http://schemas.openxmlformats.org/drawingml/2006/chart" - Network accessline 70
new Drawing.GraphicData(cxChartRef) { Uri = "http://schemas.microsoft.com/office/drawing/2014/chartex" - Network accessline 71
{ Uri = "http://schemas.microsoft.com/office/drawing/2014/chartex" } - Network accessline 72
Uri = "http://schemas.microsoft.com/office/drawing/2014/chartex" - Network accessline 79
private const string ChartExUri = "http://schemas.microsoft.com/office/drawing/2014/chartex"; - Network accessline 91
/// <summary> /// R48: extract the wrapped <p:pic> from a graphicFrame whose /// <a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture"> - Network accessline 92
/// R48: extract the wrapped <p:pic> from a graphicFrame whose /// <a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture"> /// hosts a Picture element. Keynote->PPT and Aspose-style exporters emit - Network accessline 93
/// <a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture"> - Network accessline 97
/// frame is not picture-typed or carries no Picture descendant. /// </summary> private const string PictureUri = "http://schemas.openxmlformats.org/drawingml/2006/picture"; - Network accessline 99
private const string PictureUri = "http://schemas.openxmlformats.org/drawingml/2006/picture"; - Network accessline 122
{ var rId = child.GetAttributes().FirstOrDefault(a => a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); - Network accessline 123
var rId = child.GetAttributes().FirstOrDefault(a => a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); if (rId.Value != null) return rId.Value; - Network accessline 124
a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
src/officecli/Handlers/Pptx/PowerPointHandler.Comments.cs
src/officecli/Handlers/Pptx/PowerPointHandler.EffectTemplates.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 183
// parse the fragment. return "<p:childTnLst " + "xmlns:p=\"http://schemas.openxmlformats.org/presentationml/2006/main\" " - Network accessline 184
return "<p:childTnLst " + "xmlns:p=\"http://schemas.openxmlformats.org/presentationml/2006/main\" " + "xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" " - Network accessline 185
+ "xmlns:p=\"http://schemas.openxmlformats.org/presentationml/2006/main\" " - Network accessline 186
+ "xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" " - Network accessline 187
+ "xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">"
src/officecli/Handlers/Pptx/PowerPointHandler.Effects.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 268
? value : value.Replace("<a:fillOverlay", "<a:fillOverlay xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); - Network accessline 269
: value.Replace("<a:fillOverlay", "<a:fillOverlay xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); var overlay = new Drawing.FillOverlay(); - Network accessline 270
"<a:fillOverlay xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"");
src/officecli/Handlers/Pptx/PowerPointHandler.Fill.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 332
? value : value.Replace("<a:gradFill", "<a:gradFill xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); - Network accessline 333
: value.Replace("<a:gradFill", "<a:gradFill xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); using var sr = new System.IO.StringReader(raw); - Network accessline 334
"<a:gradFill xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); - Network accessline 930
? raw : raw.Replace("<a:custDash", "<a:custDash xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); - Network accessline 931
: raw.Replace("<a:custDash", "<a:custDash xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); var custDash = new Drawing.CustomDash(); - Network accessline 932
"<a:custDash xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"");
src/officecli/Handlers/Pptx/PowerPointHandler.Helpers.FindReplace.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Helpers.Geometry.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Helpers.Ole.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Helpers.Path.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Helpers.RunFormat.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 623
// Wrap in a throwaway pPr that declares the a: namespace so each child // fragment parses with its prefix bound; then lift the parsed children. const string aNs = "http://schemas.openxmlformats.org/drawingml/2006/ma - Network accessline 624
// fragment parses with its prefix bound; then lift the parsed children. const string aNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; var wrapped = $"<a:pPr xmlns:a=\"{aNs}\">{rawXml}</a:pPr>"; - Network accessline 625
const string aNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 686
throw new ArgumentException( $"Invalid 'defRPrRaw' value: '{rawXml}'. Expected verbatim <a:defRPr .../> XML as emitted by Get."); const string aNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 687
$"Invalid 'defRPrRaw' value: '{rawXml}'. Expected verbatim <a:defRPr .../> XML as emitted by Get."); const string aNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; var wrapped = $"<a:pPr xmlns:a=\"{aNs}\">{rawXm - Network accessline 688
const string aNs = "http://schemas.openxmlformats.org/drawingml/2006/main";
src/officecli/Handlers/Pptx/PowerPointHandler.Helpers.ShapeId.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Helpers.Table.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Helpers.Text.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 33
// xml:space only via SetAttribute (no typed property). t.SetAttribute(new OpenXmlAttribute( "xml", "space", "http://www.w3.org/XML/1998/namespace", "preserve")); - Network accessline 34
t.SetAttribute(new OpenXmlAttribute( "xml", "space", "http://www.w3.org/XML/1998/namespace", "preserve")); } - Network accessline 35
"xml", "space", "http://www.w3.org/XML/1998/namespace", "preserve")); - Network accessline 129
else if (child is OpenXmlUnknownElement unk && unk.LocalName == "tab" && unk.NamespaceUri == "http://schemas.openxmlformats.org/drawingml/2006/main") - Network accessline 130
&& unk.LocalName == "tab" && unk.NamespaceUri == "http://schemas.openxmlformats.org/drawingml/2006/main") { - Network accessline 131
&& unk.NamespaceUri == "http://schemas.openxmlformats.org/drawingml/2006/main") - Network accessline 182
private static bool HasMathContent(OpenXmlElement element) { if (element.LocalName == "m" && element.NamespaceUri == "http://schemas.microsoft.com/office/drawing/2010/main") - Network accessline 183
{ if (element.LocalName == "m" && element.NamespaceUri == "http://schemas.microsoft.com/office/drawing/2010/main") return true; - Network accessline 184
if (element.LocalName == "m" && element.NamespaceUri == "http://schemas.microsoft.com/office/drawing/2010/main") - Network accessline 198
private static OpenXmlElement GetMathElement(OpenXmlElement element) { if (element.LocalName == "m" && element.NamespaceUri == "http://schemas.microsoft.com/office/drawing/2010/main") - Network accessline 199
{ if (element.LocalName == "m" && element.NamespaceUri == "http://schemas.microsoft.com/office/drawing/2010/main") { - Network accessline 200
if (element.LocalName == "m" && element.NamespaceUri == "http://schemas.microsoft.com/office/drawing/2010/main") - Network accessline 218
{ var a14m = choice.ChildElements.FirstOrDefault(e => e.LocalName == "m" && e.NamespaceUri == "http://schemas.microsoft.com/office/drawing/2010/main"); - Network accessline 219
var a14m = choice.ChildElements.FirstOrDefault(e => e.LocalName == "m" && e.NamespaceUri == "http://schemas.microsoft.com/office/drawing/2010/main"); if (a14m != null) - Network accessline 220
e.LocalName == "m" && e.NamespaceUri == "http://schemas.microsoft.com/office/drawing/2010/main"); - Network accessline 254
var oMathParaXml = xml[startIdx..(endIdx + endTag.Length)]; if (!oMathParaXml.Contains("xmlns:m=")) oMathParaXml = oMathParaXml.Replace("<m:oMathPara", "<m:oMathPara xmlns:m=\"http://schem - Network accessline 255
if (!oMathParaXml.Contains("xmlns:m=")) oMathParaXml = oMathParaXml.Replace("<m:oMathPara", "<m:oMathPara xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\""); var wrap - Network accessline 256
oMathParaXml = oMathParaXml.Replace("<m:oMathPara", "<m:oMathPara xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\""); - Network accessline 257
var wrapper = new OpenXmlUnknownElement("m", "oMathPara", "http://schemas.openxmlformats.org/officeDocument/2006/math"); - Network accessline 280
var oMathXml = xml[bareStart..(bareEnd + bareEndTag.Length)]; if (!oMathXml.Contains("xmlns:m=")) oMathXml = oMathXml.Replace("<m:oMath", "<m:oMath xmlns:m=\"http://schemas.openxmlformats. - Network accessline 281
if (!oMathXml.Contains("xmlns:m=")) oMathXml = oMathXml.Replace("<m:oMath", "<m:oMath xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\""); var bareWrapper = new OpenXm - Network accessline 282
oMathXml = oMathXml.Replace("<m:oMath", "<m:oMath xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\""); - Network accessline 283
var bareWrapper = new OpenXmlUnknownElement("m", "oMath", "http://schemas.openxmlformats.org/officeDocument/2006/math");
src/officecli/Handlers/Pptx/PowerPointHandler.Helpers.Transition.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Helpers.Zoom3D.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Helpers.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.Charts.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.Css.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.Shapes.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 1439
foreach (var kid in picBlipForFx.ChildElements) { if (kid.NamespaceUri != "http://schemas.openxmlformats.org/drawingml/2006/main") continue; - Network accessline 1440
{ if (kid.NamespaceUri != "http://schemas.openxmlformats.org/drawingml/2006/main") continue; if (kid is Drawing.LuminanceEffect lumElem) - Network accessline 1441
if (kid.NamespaceUri != "http://schemas.openxmlformats.org/drawingml/2006/main") continue; - Network accessline 2717
var rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 2769
if (fbBlip != null) { var fbRNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 2770
{ var fbRNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; var fbEmbedId = fbBlip.GetAttribute("embed", fbRNs).Value; - Network accessline 2771
var fbRNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 2914
if (fbBlip != null) { var rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 2915
{ var rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; var embedId = fbBlip.GetAttribute("embed", rNs).Value; - Network accessline 2916
var rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 2986
// drawing/spTree roots as p:cSld/p:spTree. dsp shares the same // child element local-names + Drawing (a:) children as p:. const string dspNs = "http://schemas.microsoft.com/office/drawing/2008/diagram"; - Network accessline 2987
// child element local-names + Drawing (a:) children as p:. const string dspNs = "http://schemas.microsoft.com/office/drawing/2008/diagram"; const string pNs = "http://schemas.openxmlformats.org/presentationm - Network accessline 2988
const string dspNs = "http://schemas.microsoft.com/office/drawing/2008/diagram"; - Network accessline 2989
const string pNs = "http://schemas.openxmlformats.org/presentationml/2006/main"; - Network accessline 3005
var sldXml = $"<p:sld xmlns:p=\"{pNs}\" " + "xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" " + - Network accessline 3006
$"<p:sld xmlns:p=\"{pNs}\" " + "xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" " + "xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">" + - Network accessline 3007
"xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" " + - Network accessline 3008
"xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">" + - Network accessline 3056
try { const string dgmNs = "http://schemas.openxmlformats.org/drawingml/2006/diagram"; - Network accessline 3057
{ const string dgmNs = "http://schemas.openxmlformats.org/drawingml/2006/diagram"; const string dspNs = "http://schemas.microsoft.com/office/drawing/2008/diagram"; - Network accessline 3058
const string dgmNs = "http://schemas.openxmlformats.org/drawingml/2006/diagram"; - Network accessline 3059
const string dspNs = "http://schemas.microsoft.com/office/drawing/2008/diagram"; - Network accessline 3127
private static string? TryExtractOlePreviewDataUri(GraphicFrame gf, OpenXmlPart slidePart) { const string rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 3128
{ const string rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; foreach (var blip in gf.Descendants().Where(d => d.LocalName == "blip")) - Network accessline 3129
const string rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
src/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.Tables.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.Text.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 272
katex.render(el.dataset.formula, el, { throwOnError: false, displayMode: el.dataset.display === '1' }); el.classList.add('katex-rendered'); } catch(e) { el.textContent = el.dataset.formula + ' (Error: ' + e.messa - Network accessline 273
el.classList.add('katex-rendered'); } catch(e) { el.textContent = el.dataset.formula + ' (Error: ' + e.message + '. See https://katex.org/docs/supported.html for supported syntax.)'; } }); - Network accessline 274
} catch(e) { el.textContent = el.dataset.formula + ' (Error: ' + e.message + '. See https://katex.org/docs/supported.html for supported syntax.)'; }
src/officecli/Handlers/Pptx/PowerPointHandler.Hyperlinks.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 27
/// Resolve a user-supplied link string into a hyperlink target. Returns null to mean "remove". /// Supports: /// - Absolute URI (https://, mailto:, etc.) → external relationship - Network accessline 28
/// Supports: /// - Absolute URI (https://, mailto:, etc.) → external relationship /// - slide[N] → internal slide jump (ppaction://hlinksldjump) - Network accessline 29
/// - Absolute URI (https://, mailto:, etc.) → external relationship - Network accessline 104
&& !Uri.TryCreate(url, UriKind.Relative, out uri)) throw new ArgumentException( $"Invalid hyperlink URL '{url}'. Expected an absolute URI (e.g. 'https://example.com'), " + - Network accessline 105
throw new ArgumentException( $"Invalid hyperlink URL '{url}'. Expected an absolute URI (e.g. 'https://example.com'), " + $"a relative file target, 'slide[N]', or a named action (firstslide/lastslide/nextslide - Network accessline 106
$"Invalid hyperlink URL '{url}'. Expected an absolute URI (e.g. 'https://example.com'), " + - Network accessline 163
if (!properties.TryGetValue("link", out var url) && !properties.TryGetValue("url", out url)) throw new ArgumentException( "hyperlink requires --prop link=<url>. Example: --prop link=https://example.com"); - Network accessline 164
throw new ArgumentException( "hyperlink requires --prop link=<url>. Example: --prop link=https://example.com"); var tooltip = properties.GetValueOrDefault("tooltip"); - Network accessline 165
"hyperlink requires --prop link=<url>. Example: --prop link=https://example.com"); - Network accessline 355
// Prefer Uri.OriginalString over Uri.ToString(): ToString() normalises // path-empty URIs by injecting a "/" before the query (so // https://example.com round-trips as https://example.com/, and - Network accessline 356
// path-empty URIs by injecting a "/" before the query (so // https://example.com round-trips as https://example.com/, and // ppaction://hlinkshowjump?jump=firstslide as - Network accessline 357
// https://example.com round-trips as https://example.com/, and
src/officecli/Handlers/Pptx/PowerPointHandler.ModernComments.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 25
public partial class PowerPointHandler { private const string ModernCommentNs = "http://schemas.microsoft.com/office/powerpoint/2018/8/main"; - Network accessline 27
private const string ModernCommentNs = "http://schemas.microsoft.com/office/powerpoint/2018/8/main";
src/officecli/Handlers/Pptx/PowerPointHandler.Mutations.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 638
var m3dAc = model3dElements[elementIdx - 1]; // Clean up model part and image parts var m3dRNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 639
// Clean up model part and image parts var m3dRNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; foreach (var el in m3dAc.Descendants().Where(d => d.LocalName == "blip" || d.LocalName == "mo - Network accessline 640
var m3dRNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 659
if (zmBlip != null) { var rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 660
{ var rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; var embedAttr = zmBlip.GetAttribute("embed", rNs); - Network accessline 661
var rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 919
if (srcSlidePart != tgtSlidePart) { var rNsUri = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 920
{ var rNsUri = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; foreach (var el in srcElement.Descendants().Prepend(srcElement)) - Network accessline 921
var rNsUri = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 2146
private static void RemapRelationshipIds(OpenXmlElement root, Dictionary<string, string> rIdMap) { var rNsUri = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 2148
var rNsUri = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 2209
private static void CopyRelationships(OpenXmlElement element, SlidePart sourcePart, SlidePart targetPart) { var rNsUri = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 2210
{ var rNsUri = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; var allElements = element.Descendants().Prepend(element); - Network accessline 2211
var rNsUri = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
src/officecli/Handlers/Pptx/PowerPointHandler.NodeBuilder.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 328
// bt-4: SmartArt sits inside a <p:graphicFrame> whose <a:graphicData uri> // is "http://schemas.openxmlformats.org/drawingml/2006/diagram" and whose - Network accessline 329
// is "http://schemas.openxmlformats.org/drawingml/2006/diagram" and whose - Network accessline 332
// matching how GetSmartArtsOnSlide probes). private const string SmartArtGraphicDataUri = "http://schemas.openxmlformats.org/drawingml/2006/diagram"; - Network accessline 334
"http://schemas.openxmlformats.org/drawingml/2006/diagram"; - Network accessline 339
// trackedChange) that confuses the SDK's tbl-subtree typing. private const string TableGraphicDataUri = "http://schemas.openxmlformats.org/drawingml/2006/table"; - Network accessline 341
"http://schemas.openxmlformats.org/drawingml/2006/table"; - Network accessline 871
var isEquation = !isTitle && shape.TextBody != null && shape.TextBody.Descendants().Any(e => e.LocalName == "oMath" || e.LocalName == "oMathPara" || (e.LocalName == "m" && e.NamespaceUri == "http://schemas.micros - Network accessline 873
|| (e.LocalName == "m" && e.NamespaceUri == "http://schemas.microsoft.com/office/drawing/2010/main")); - Network accessline 2922
foreach (var kid in picBlip.ChildElements) { if (kid.NamespaceUri != "http://schemas.openxmlformats.org/drawingml/2006/main") continue; - Network accessline 2923
{ if (kid.NamespaceUri != "http://schemas.openxmlformats.org/drawingml/2006/main") continue; if (kid is Drawing.LuminanceEffect lumElem) - Network accessline 2924
if (kid.NamespaceUri != "http://schemas.openxmlformats.org/drawingml/2006/main") continue;
src/officecli/Handlers/Pptx/PowerPointHandler.Notes.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 338
return "<p:notesMaster xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" " - Network accessline 339
+ "xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" " - Network accessline 340
+ "xmlns:p=\"http://schemas.openxmlformats.org/presentationml/2006/main\">"
src/officecli/Handlers/Pptx/PowerPointHandler.PresetAdjustGuides.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Query.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Resolve.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 105
if (graphicData != null) { const string cxNs = "http://schemas.microsoft.com/office/drawing/2014/chartex"; - Network accessline 106
{ const string cxNs = "http://schemas.microsoft.com/office/drawing/2014/chartex"; var cxChartRef = graphicData.ChildElements - Network accessline 107
const string cxNs = "http://schemas.microsoft.com/office/drawing/2014/chartex"; - Network accessline 111
{ // The r:id attribute lives in the relationships namespace. const string rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 112
// The r:id attribute lives in the relationships namespace. const string rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; var relIdAttr = cxChartRef.GetAttributes() - Network accessline 113
const string rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
src/officecli/Handlers/Pptx/PowerPointHandler.Selector.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Set.Chart.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Set.Media.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 456
foreach (var kid in blipBC.ChildElements.ToList()) { if (kid.NamespaceUri != "http://schemas.openxmlformats.org/drawingml/2006/main") continue; - Network accessline 457
{ if (kid.NamespaceUri != "http://schemas.openxmlformats.org/drawingml/2006/main") continue; if (kid is Drawing.LuminanceEffect existingLum) - Network accessline 458
if (kid.NamespaceUri != "http://schemas.openxmlformats.org/drawingml/2006/main") continue; - Network accessline 583
if (hlinkClick != null) { var rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 584
{ var rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; var targetSlidePart = zmSlideParts[targetNum - 1]; - Network accessline 585
var rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 636
if (key.ToLowerInvariant() is "width" or "height") { var p166Ns = "http://schemas.microsoft.com/office/powerpoint/2016/6/main"; - Network accessline 637
{ var p166Ns = "http://schemas.microsoft.com/office/powerpoint/2016/6/main"; var zmSpPr = zmPr?.ChildElements.FirstOrDefault(e => e.LocalName == "spPr" && e.NamespaceUri == p166Ns); - Network accessline 638
var p166Ns = "http://schemas.microsoft.com/office/powerpoint/2016/6/main"; - Network accessline 667
newImagePart.FeedData(zmImgStream); var newImgRelId = zmSlidePart.GetIdOfPart(newImagePart); var rNs2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 668
var newImgRelId = zmSlidePart.GetIdOfPart(newImagePart); var rNs2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; // Update blip in zmPr > blipFill - Network accessline 669
var rNs2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
src/officecli/Handlers/Pptx/PowerPointHandler.Set.Presentation.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Set.Shape.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 1933
if (shapeHl == null && runHls.Count == 0) throw new ArgumentException( "tooltip requires an existing hyperlink — set 'link' in the same call (e.g. --prop link=https://example.com --prop tooltip=…) - Network accessline 1934
throw new ArgumentException( "tooltip requires an existing hyperlink — set 'link' in the same call (e.g. --prop link=https://example.com --prop tooltip=…) " + "or apply 'link' first, then upda - Network accessline 1935
"tooltip requires an existing hyperlink — set 'link' in the same call (e.g. --prop link=https://example.com --prop tooltip=…) " +
src/officecli/Handlers/Pptx/PowerPointHandler.Set.Slide.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Set.Table.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.Set.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.ShapeProperties.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 1845
? value : value.Replace("<a:outerShdw", "<a:outerShdw xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); - Network accessline 1846
: value.Replace("<a:outerShdw", "<a:outerShdw xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); var shadow = new Drawing.OuterShadow(); - Network accessline 1847
"<a:outerShdw xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); - Network accessline 1873
var inner = subtreeXml.Contains("xmlns:a=") ? subtreeXml : "<wrap xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">" - Network accessline 1874
? subtreeXml : "<wrap xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">" + subtreeXml + "</wrap>"; - Network accessline 1875
: "<wrap xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">" - Network accessline 1912
? value : value.Replace("<a:effectDag", "<a:effectDag xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); - Network accessline 1913
: value.Replace("<a:effectDag", "<a:effectDag xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); var dag = new Drawing.EffectDag(); - Network accessline 1914
"<a:effectDag xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); - Network accessline 1978
? value : value.Replace("<a:effectLst", "<a:effectLst xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); - Network accessline 1979
: value.Replace("<a:effectLst", "<a:effectLst xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); var freshList = new Drawing.EffectList(); - Network accessline 1980
"<a:effectLst xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); - Network accessline 2108
? value : value.Replace("<a:innerShdw", "<a:innerShdw xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); - Network accessline 2109
: value.Replace("<a:innerShdw", "<a:innerShdw xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); var shadow = new Drawing.InnerShadow(); - Network accessline 2110
"<a:innerShdw xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); - Network accessline 2178
? value : value.Replace("<a:reflection", "<a:reflection xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); - Network accessline 2179
: value.Replace("<a:reflection", "<a:reflection xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); using var sr = new System.IO.StringReader(raw); - Network accessline 2180
"<a:reflection xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\""); - Network accessline 2409
choice.RemoveAllChildren(); choice.Requires = "a14"; var a14m = new OpenXmlUnknownElement("a14", "m", "http://schemas.microsoft.com/office/drawing/2010/main"); - Network accessline 2410
choice.Requires = "a14"; var a14m = new OpenXmlUnknownElement("a14", "m", "http://schemas.microsoft.com/office/drawing/2010/main"); a14m.AppendChild(mathPara.CloneNode(true)); - Network accessline 2411
var a14m = new OpenXmlUnknownElement("a14", "m", "http://schemas.microsoft.com/office/drawing/2010/main"); - Network accessline 2427
{ // No existing equation — build full structure var a14m = new OpenXmlUnknownElement("a14", "m", "http://schemas.microsoft.com/office/drawing/2010/main"); - Network accessline 2428
// No existing equation — build full structure var a14m = new OpenXmlUnknownElement("a14", "m", "http://schemas.microsoft.com/office/drawing/2010/main"); a14m.AppendChild(mathPara.CloneNode(tr - Network accessline 2429
var a14m = new OpenXmlUnknownElement("a14", "m", "http://schemas.microsoft.com/office/drawing/2010/main");
src/officecli/Handlers/Pptx/PowerPointHandler.StyleList.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.SvgPreview.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 53
sb.AppendLine($"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\""); - Network accessline 1275
sb.Append($"<foreignObject x=\"{lIns:0.##}\" y=\"{tIns:0.##}\" width=\"{textW:0.##}\" height=\"{textH:0.##}\">"); sb.Append($"<div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"width:100%;height:100%;overflow:hidden;display:flex;fl - Network accessline 1276
sb.Append($"<div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"width:100%;height:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:{justifyContent};line-height:1\">"); - Network accessline 2026
{ var sb = new StringBuilder(); sb.Append("<math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\">"); - Network accessline 2027
var sb = new StringBuilder(); sb.Append("<math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\">"); ConvertOmmlNode(sb, oMath); - Network accessline 2028
sb.Append("<math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\">");
src/officecli/Handlers/Pptx/PowerPointHandler.Theme.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PowerPointHandler.View.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 605
using var rs = relsPart.GetStream(System.IO.FileMode.Open, System.IO.FileAccess.Read); var relsDoc = System.Xml.Linq.XDocument.Load(rs); System.Xml.Linq.XNamespace relsNs2006 = "http://schemas.openxml - Network accessline 606
var relsDoc = System.Xml.Linq.XDocument.Load(rs); System.Xml.Linq.XNamespace relsNs2006 = "http://schemas.openxmlformats.org/package/2006/relationships"; foreach (var relEl in relsDoc.Descendants(rels - Network accessline 607
System.Xml.Linq.XNamespace relsNs2006 = "http://schemas.openxmlformats.org/package/2006/relationships"; - Network accessline 662
const string relNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
src/officecli/Handlers/Pptx/PptxBatchEmitter.AuxParts.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PptxBatchEmitter.Charts.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 519
// xmlns:a on each child element). private const string NoFillReplacement = "<a:noFill xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" />"; - Network accessline 521
"<a:noFill xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" />";
src/officecli/Handlers/Pptx/PptxBatchEmitter.Filters.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PptxBatchEmitter.Media.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 474
{ ["rid"] = o.OleRelId, ["rel-type"] = o.LinkedRelType ?? "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject", - Network accessline 475
["rid"] = o.OleRelId, ["rel-type"] = o.LinkedRelType ?? "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject", ["target"] = o.LinkedTarget, - Network accessline 476
["rel-type"] = o.LinkedRelType ?? "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject", - Dangerous shell operationline 645
foreach (System.Text.RegularExpressions.Match rm in - Dangerous shell operationline 662
foreach (System.Text.RegularExpressions.Match rm in - Dangerous shell operationline 690
foreach (System.Text.RegularExpressions.Match rm in
src/officecli/Handlers/Pptx/PptxBatchEmitter.Notes.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PptxBatchEmitter.Resources.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 67
if (doc.Root == null) return xml; var pNs = System.Xml.Linq.XNamespace.Get( "http://schemas.openxmlformats.org/presentationml/2006/main"); - Network accessline 68
var pNs = System.Xml.Linq.XNamespace.Get( "http://schemas.openxmlformats.org/presentationml/2006/main"); foreach (var el in doc.Root.DescendantsAndSelf(pNs + "custDataLst").ToList()) - Network accessline 69
"http://schemas.openxmlformats.org/presentationml/2006/main"); - Network accessline 537
var pNs = System.Xml.Linq.XNamespace.Get( "http://schemas.openxmlformats.org/presentationml/2006/main"); - Network accessline 538
"http://schemas.openxmlformats.org/presentationml/2006/main");
src/officecli/Handlers/Pptx/PptxBatchEmitter.Shape.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PptxBatchEmitter.Table.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/PptxBatchEmitter.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 265
// Relationship / content types for the presentation's tableStyles part. private const string TableStylesRelType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/tableStyles"; - Network accessline 266
private const string TableStylesRelType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/tableStyles"; private const string TableStylesContentType = - Network accessline 267
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/tableStyles"; - Network accessline 1432
var ambient = new (string Prefix, System.Xml.Linq.XNamespace Ns)[] { ("p", "http://schemas.openxmlformats.org/presentationml/2006/main"), - Network accessline 1433
{ ("p", "http://schemas.openxmlformats.org/presentationml/2006/main"), ("a", "http://schemas.openxmlformats.org/drawingml/2006/main"), - Network accessline 1434
("p", "http://schemas.openxmlformats.org/presentationml/2006/main"), - Network accessline 1435
("a", "http://schemas.openxmlformats.org/drawingml/2006/main"), - Network accessline 1436
("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"), - Network accessline 1437
("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"), - Network accessline 1508
// weight inherited from the parent and should be stripped to keep // the slice byte-stable across rounds. var mcNs = System.Xml.Linq.XNamespace.Get("http://schemas.openxmlformats.org/markup-compatibility/2006"); - Network accessline 1509
// the slice byte-stable across rounds. var mcNs = System.Xml.Linq.XNamespace.Get("http://schemas.openxmlformats.org/markup-compatibility/2006"); var usedPrefixes = new HashSet<string>(StringComparer.Ordinal); - Network accessline 1510
var mcNs = System.Xml.Linq.XNamespace.Get("http://schemas.openxmlformats.org/markup-compatibility/2006"); - Network accessline 1583
private static readonly (string Prefix, string Uri)[] SliceXmlnsBindings = { ("p", "http://schemas.openxmlformats.org/presentationml/2006/main"), - Network accessline 1584
{ ("p", "http://schemas.openxmlformats.org/presentationml/2006/main"), ("a", "http://schemas.openxmlformats.org/drawingml/2006/main"), - Network accessline 1585
("p", "http://schemas.openxmlformats.org/presentationml/2006/main"), - Network accessline 1586
("a", "http://schemas.openxmlformats.org/drawingml/2006/main"), - Network accessline 1587
("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"), - Network accessline 1588
("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"), - Network accessline 1589
("p14", "http://schemas.microsoft.com/office/powerpoint/2010/main"), - Network accessline 1590
("p15", "http://schemas.microsoft.com/office/powerpoint/2012/main"), - Network accessline 1591
("p16", "http://schemas.microsoft.com/office/powerpoint/2015/main"), - Network accessline 1592
("p159", "http://schemas.microsoft.com/office/powerpoint/2015/09/main"), - Network accessline 1593
("p188", "http://schemas.microsoft.com/office/powerpoint/2018/8/main"), - Network accessline 1594
("a14", "http://schemas.microsoft.com/office/drawing/2010/main"), - Network accessline 1595
("a16", "http://schemas.microsoft.com/office/drawing/2014/main"), - Network accessline 1596
("am3d", "http://schemas.microsoft.com/office/drawing/2017/model3d"), - Network accessline 1633
private static string? PruneDanglingTimingTargets(string timingXml, HashSet<uint> emittedIds) { System.Xml.Linq.XNamespace p = "http://schemas.openxmlformats.org/presentationml/2006/main"; - Network accessline 1634
{ System.Xml.Linq.XNamespace p = "http://schemas.openxmlformats.org/presentationml/2006/main"; System.Xml.Linq.XDocument doc; - Network accessline 1635
System.Xml.Linq.XNamespace p = "http://schemas.openxmlformats.org/presentationml/2006/main"; - Network accessline 1704
var ambientUris = new (string Prefix, string Uri)[] { ("p", "http://schemas.openxmlformats.org/presentationml/2006/main"), - Network accessline 1705
{ ("p", "http://schemas.openxmlformats.org/presentationml/2006/main"), ("a", "http://schemas.openxmlformats.org/drawingml/2006/main"), - Network accessline 1706
("p", "http://schemas.openxmlformats.org/presentationml/2006/main"), - Network accessline 1707
("a", "http://schemas.openxmlformats.org/drawingml/2006/main"), - Network accessline 1708
("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"), - Network accessline 1709
("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"), - Network accessline 1738
var ambient = new Dictionary<string, string> { ["p"] = "http://schemas.openxmlformats.org/presentationml/2006/main", - Network accessline 1739
{ ["p"] = "http://schemas.openxmlformats.org/presentationml/2006/main", ["a"] = "http://schemas.openxmlformats.org/drawingml/2006/main", - Network accessline 1740
["p"] = "http://schemas.openxmlformats.org/presentationml/2006/main", - Network accessline 1741
["a"] = "http://schemas.openxmlformats.org/drawingml/2006/main", - Network accessline 1742
["r"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - Network accessline 1743
["mc"] = "http://schemas.openxmlformats.org/markup-compatibility/2006", - Network accessline 1800
const string ImageRelType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image";
src/officecli/Handlers/Pptx/SlideComposition.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Pptx/SpacingPercentExtensions.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Rendering/BasicRenderers.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Rendering/HandlerRenderInput.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordBatchEmitter.AuxParts.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordBatchEmitter.Charts.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordBatchEmitter.Fields.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 625
var bmName = sc.Format.TryGetValue("name", out var bmNameObj) ? bmNameObj?.ToString() : null; const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 626
? bmNameObj?.ToString() : null; const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; pendingMarkers.Add(sc.Type == "bookmark" && !string.IsNullOrEmpty(bmName) - Network accessline 627
const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
src/officecli/Handlers/Word/WordBatchEmitter.Filters.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordBatchEmitter.Paragraph.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 1570
{ var brkRunEl = System.Xml.Linq.XElement.Parse(brkRawXml!); var wNsBrk = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 1571
var brkRunEl = System.Xml.Linq.XElement.Parse(brkRawXml!); var wNsBrk = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; var brkRPrEl = brkRunEl.Element(wNsBrk + "rP - Network accessline 1572
var wNsBrk = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 3499
var doc = System.Xml.Linq.XDocument.Parse(xml); if (doc.Root == null) return xml; var aNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 3500
if (doc.Root == null) return xml; var aNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/drawingml/2006/main"; var rNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/officeDocument - Network accessline 3501
var aNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 3502
var rNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 3696
{ var doc = System.Xml.Linq.XDocument.Parse(rawXml); System.Xml.Linq.XNamespace wp = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"; - Network accessline 3697
var doc = System.Xml.Linq.XDocument.Parse(rawXml); System.Xml.Linq.XNamespace wp = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"; System.Xml.Linq.XNamespace a = "http://schemas.openxmlforma - Network accessline 3698
System.Xml.Linq.XNamespace wp = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"; - Network accessline 3699
System.Xml.Linq.XNamespace a = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 4094
{ var oleRunEl = System.Xml.Linq.XElement.Parse(oleRawXml!); var wNsOle = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 4095
var oleRunEl = System.Xml.Linq.XElement.Parse(oleRawXml!); var wNsOle = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; var oleRPrEl = oleRunEl.Element(wNsO - Network accessline 4096
var wNsOle = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main";
src/officecli/Handlers/Word/WordBatchEmitter.Resources.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 94
// aware names AND fix the attribute order so the dump pair emits // identical bytes regardless of SDK's choice. var wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 95
// identical bytes regardless of SDK's choice. var wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; foreach (var ind in doc.Descendants(System.Xml.Linq.XName.Get("ind", wNs))) - Network accessline 96
var wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 168
var doc = System.Xml.Linq.XDocument.Parse(settingsXml); if (doc.Root == null) return settingsXml; var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 169
if (doc.Root == null) return settingsXml; var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; var rNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org - Network accessline 170
var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 171
var rNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 259
var doc = System.Xml.Linq.XDocument.Parse(notesXml); if (doc.Root == null) return false; var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 260
if (doc.Root == null) return false; var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; foreach (var note in doc.Root.Elements()) - Network accessline 261
var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 430
catch { return; } if (doc.Root == null) return; var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 432
var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 518
var sb = new System.Text.StringBuilder(); sb.Append("<w:").Append(settingsNotePr) .Append(" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\">"); - Network accessline 519
sb.Append("<w:").Append(settingsNotePr) .Append(" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\">"); sb.Append($"<w:{queryKind} w:id=\"-1\"/>"); - Network accessline 520
.Append(" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\">"); - Network accessline 554
var doc = System.Xml.Linq.XDocument.Parse(numberingXml); if (doc.Root == null) return numberingXml; var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 555
if (doc.Root == null) return numberingXml; var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; var removed = false; - Network accessline 556
var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 620
{ var doc = System.Xml.Linq.XDocument.Parse(stylesXml); var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 621
var doc = System.Xml.Linq.XDocument.Parse(stylesXml); var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; var el = doc.Root?.Element(wNs + "docDefaults"); - Network accessline 622
var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 674
{ var doc = System.Xml.Linq.XDocument.Parse(stylesXml); var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 675
var doc = System.Xml.Linq.XDocument.Parse(stylesXml); var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; var lsEl = doc.Root?.Element(wNs + "latentStyles"); - Network accessline 676
var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 714
var doc = System.Xml.Linq.XDocument.Parse(themeXml); if (doc.Root == null) return themeXml; var aNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 715
if (doc.Root == null) return themeXml; var aNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/drawingml/2006/main"; var rNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/officeDoc - Network accessline 716
var aNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 717
var rNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 879
xml = CanonicalizeRawXml(xml); if (string.IsNullOrEmpty(xml) || !xml.StartsWith("<")) xml = "<w:settings xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" />"; - Network accessline 880
if (string.IsNullOrEmpty(xml) || !xml.StartsWith("<")) xml = "<w:settings xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" />"; // BUG-DUMP-R57-NOTESEP: body-referenced notes mean the correspondin - Network accessline 881
xml = "<w:settings xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" />"; - Network accessline 1243
var doc = System.Xml.Linq.XDocument.Parse(numberingXml); if (doc.Root == null) return numberingXml; var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 1244
if (doc.Root == null) return numberingXml; var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; int RankOf(System.Xml.Linq.XElement e) - Network accessline 1245
var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 2251
{ var refRunEl = System.Xml.Linq.XElement.Parse(refRaw); var wNs3 = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 2252
var refRunEl = System.Xml.Linq.XElement.Parse(refRaw); var wNs3 = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; var refRPrEl = refRunEl.Element(wN - Network accessline 2253
var wNs3 = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 2287
{ var runEl = System.Xml.Linq.XElement.Parse(bodyRunXml); var wNs2 = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 2288
var runEl = System.Xml.Linq.XElement.Parse(bodyRunXml); var wNs2 = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; var rPrEl = runEl.Element(wNs2 + "rPr"); - Network accessline 2289
var wNs2 = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 3668
private static readonly Dictionary<string, string> s_nsToPrefix = new(StringComparer.Ordinal) { ["http://schemas.openxmlformats.org/wordprocessingml/2006/main"] = "w", - Network accessline 3669
{ ["http://schemas.openxmlformats.org/wordprocessingml/2006/main"] = "w", ["http://schemas.openxmlformats.org/officeDocument/2006/relationships"] = "r", - Network accessline 3670
["http://schemas.openxmlformats.org/wordprocessingml/2006/main"] = "w", - Network accessline 3671
["http://schemas.openxmlformats.org/officeDocument/2006/relationships"] = "r", - Network accessline 3672
["http://schemas.openxmlformats.org/drawingml/2006/main"] = "a", - Network accessline 3673
["http://schemas.openxmlformats.org/markup-compatibility/2006"] = "mc", - Network accessline 3674
["http://schemas.openxmlformats.org/officeDocument/2006/math"] = "m", - Network accessline 3706
try { sdkStyle = new DocumentFormat.OpenXml.Wordprocessing.Style(styleXml); } catch { return null; } var wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 3707
catch { return null; } var wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; var ops = new List<BatchItem>(); - Network accessline 3708
var wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 3900
{ var doc = System.Xml.Linq.XDocument.Parse(stylesXml); var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 3901
var doc = System.Xml.Linq.XDocument.Parse(stylesXml); var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; foreach (var styleEl in doc.Root?.Elements(wNs + "style") ?? - Network accessline 3902
var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 3942
{ var doc = System.Xml.Linq.XDocument.Parse(stylesXml); var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 3943
var doc = System.Xml.Linq.XDocument.Parse(stylesXml); var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main"; var counts = new Dictionary<string, int>(StringComparer.Ordi - Network accessline 3944
var wNs = (System.Xml.Linq.XNamespace)"http://schemas.openxmlformats.org/wordprocessingml/2006/main";
src/officecli/Handlers/Word/WordBatchEmitter.Table.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordBatchEmitter.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Add.Diagram.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 284
private const string DiagramNs = "xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" " + - Network accessline 285
"xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" " + - Network accessline 286
"xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" " + - Network accessline 287
"xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" " + - Network accessline 288
"xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" " + - Network accessline 289
"xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\""; - Network accessline 304
$"<wp:docPr id=\"{groupId}\" name=\"Diagram {groupId}\"/>" + "<wp:cNvGraphicFramePr/>" + "<a:graphic><a:graphicData uri=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\">" + - Network accessline 305
"<wp:cNvGraphicFramePr/>" + "<a:graphic><a:graphicData uri=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\">" + "<wpg:wgp><wpg:cNvGrpSpPr/><wpg:grpSpPr>" + - Network accessline 306
"<a:graphic><a:graphicData uri=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\">" +
src/officecli/Handlers/Word/WordHandler.Add.Markdown.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Add.Media.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 88
var cxGraphic = new A.Graphic( new A.GraphicData(cxChartRef) { Uri = "http://schemas.microsoft.com/office/drawing/2014/chartex" } - Network accessline 89
new A.GraphicData(cxChartRef) { Uri = "http://schemas.microsoft.com/office/drawing/2014/chartex" } ); - Network accessline 90
{ Uri = "http://schemas.microsoft.com/office/drawing/2014/chartex" } - Network accessline 159
new DocumentFormat.OpenXml.Drawing.Charts.ChartReference { Id = chartRelId } ) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/chart" } - Network accessline 160
) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/chart" } ); - Network accessline 161
{ Uri = "http://schemas.openxmlformats.org/drawingml/2006/chart" } - Network accessline 291
var userShapes = new DocumentFormat.OpenXml.Drawing.Charts.UserShapes(); userShapes.SetAttribute(new OpenXmlAttribute( "r", "id", "http://schemas.openxmlformats.org/officeDocument/2006/relationships", cdpRelId)); - Network accessline 292
userShapes.SetAttribute(new OpenXmlAttribute( "r", "id", "http://schemas.openxmlformats.org/officeDocument/2006/relationships", cdpRelId)); // c:userShapes is the last CT_ChartSpace element before c:extLst. - Network accessline 293
"r", "id", "http://schemas.openxmlformats.org/officeDocument/2006/relationships", cdpRelId)); - Network accessline 1004
// fresh id and route the source id through the same rewrite map. const string HyperlinkRelType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink"; - Network accessline 1005
const string HyperlinkRelType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink"; for (int ei = 1; properties.TryGetValue($"ext{ei}.relId", out var extOldId); ei++) - Network accessline 1006
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink"; - Network accessline 1223
_ when IsEmbeddedOleObjectContentType(ct) && parent is ChartPart => parent.AddExtendedPart( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject", - Network accessline 1224
=> parent.AddExtendedPart( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject", ct, ".bin", relId), - Network accessline 1225
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject", - Network accessline 1441
: $" ProgID=\"{System.Security.SecurityElement.Escape(progId)}\""; var oleXml = $""" <w:object xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-micro - Network accessline 1442
var oleXml = $""" <w:object xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDo - Network accessline 1443
<w:object xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relati
src/officecli/Handlers/Word/WordHandler.Add.Misc.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 1095
else { throw new ArgumentException($"Invalid hyperlink URL '{hlUrl}'. Expected an absolute URI (e.g. 'https://example.com'), a relative target (e.g. 'file.docx'), or a fragment-only anchor (e.g. '#bookmark')."); - Network accessline 1096
{ throw new ArgumentException($"Invalid hyperlink URL '{hlUrl}'. Expected an absolute URI (e.g. 'https://example.com'), a relative target (e.g. 'file.docx'), or a fragment-only anchor (e.g. '#bookmark')."); } - Network accessline 1097
throw new ArgumentException($"Invalid hyperlink URL '{hlUrl}'. Expected an absolute URI (e.g. 'https://example.com'), a relative target (e.g. 'file.docx'), or a fragment-only anchor (e.g. '#bookmark')."); - Network accessline 2726
// Build header XML with SDT wrapper (docPartGallery=Watermarks) var headerXml = $@"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?> <w:hdr xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main"" - Network accessline 2727
var headerXml = $@"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?> <w:hdr xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main"" xmlns:r=""http://schemas.openxmlformats.org/officeDocument/2006/relation - Network accessline 2728
<w:hdr xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main"" - Network accessline 2729
xmlns:r=""http://schemas.openxmlformats.org/officeDocument/2006/relationships"" - Dangerous shell operationline 2884
var rm = System.Text.RegularExpressions.Regex.Match(switches, @"\\r\s+(\d+)"); - Network accessline 3122
string effectXml = BuildShadowXml(properties.GetValueOrDefault("shadow")); string txbxBodyXml = !string.IsNullOrEmpty(initialText) ? $"<w:p xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"><w:r><w - Network accessline 3123
string txbxBodyXml = !string.IsNullOrEmpty(initialText) ? $"<w:p xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"><w:r><w:t xml:space=\"preserve\">{System.Security.SecurityElement.Escape(initialText)}</w: - Network accessline 3124
? $"<w:p xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"><w:r><w:t xml:space=\"preserve\">{System.Security.SecurityElement.Escape(initialText)}</w:t></w:r></w:p>" - Network accessline 3125
: "<w:p xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"/>"; - Network accessline 3140
// a:graphicData uri = wordprocessingShape; inner wps:wsp carries // spPr (preset rect geometry + fill + line) + txbx (body paragraphs) + bodyPr. string drawingXml = $@"<w:drawing xmlns:w=""http://schemas.openxmlformats.org/ - Network accessline 3142
string drawingXml = $@"<w:drawing xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main"" xmlns:wp=""http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"" xmlns:a=""http://schemas.openxmlformats.org/drawi - Network accessline 3251
string drawingXml = $@"<w:drawing xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main"" xmlns:wp=""http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"" xmlns:a=""http://schemas.openxmlformats.org/drawi - Network accessline 3595
// <w:drawing> belongs inside <w:r>, so the Run wrapper is the // minimal schema-legal host. var wrapXml = $@"<w:p xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main""><w:r>{xml}</w:r></w:p>"; - Network accessline 3596
// minimal schema-legal host. var wrapXml = $@"<w:p xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main""><w:r>{xml}</w:r></w:p>"; var p = new Paragraph(wrapXml); - Network accessline 3597
var wrapXml = $@"<w:p xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main""><w:r>{xml}</w:r></w:p>";
src/officecli/Handlers/Word/WordHandler.Add.Structure.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 2827
// accept the extension attrs. var hRoot = new Header(hPara); hRoot.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"); - Network accessline 2828
var hRoot = new Header(hPara); hRoot.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"); hRoot.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml"); - Network accessline 2829
hRoot.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"); - Network accessline 2830
hRoot.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml"); - Network accessline 2831
hRoot.SetAttribute(new OpenXmlAttribute("Ignorable", "http://schemas.openxmlformats.org/markup-compatibility/2006", "w14")); - Network accessline 3017
// OpenXmlValidator rejects them as undeclared without this. var fRoot = new Footer(fPara); fRoot.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"); - Network accessline 3018
var fRoot = new Footer(fPara); fRoot.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"); fRoot.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml"); - Network accessline 3019
fRoot.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"); - Network accessline 3020
fRoot.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml"); - Network accessline 3021
fRoot.SetAttribute(new OpenXmlAttribute("Ignorable", "http://schemas.openxmlformats.org/markup-compatibility/2006", "w14"));
src/officecli/Handlers/Word/WordHandler.Add.Table.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Add.Text.cs
src/officecli/Handlers/Word/WordHandler.Add.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.CommentsExt.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.FormFields.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Helpers.Chart.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 21
private const string WordChartExUri = "http://schemas.microsoft.com/office/drawing/2014/chartex"; - Network accessline 22
private const string WordChartUri = "http://schemas.openxmlformats.org/drawingml/2006/chart"; - Network accessline 321
{ var rId = child.GetAttributes().FirstOrDefault(a => a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); - Network accessline 322
var rId = child.GetAttributes().FirstOrDefault(a => a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); if (rId.Value != null) return rId.Value; - Network accessline 323
a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
src/officecli/Handlers/Word/WordHandler.Helpers.Field.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 441
// Ensure mc:Ignorable includes "w14" so Word 2007 skips w14:paraId/textId attributes var doc = mainPart.Document; const string mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 442
var doc = mainPart.Document; const string mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; if (doc.LookupNamespace("mc") == null) - Network accessline 443
const string mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 445
doc.AddNamespaceDeclaration("mc", mcNs); if (doc.LookupNamespace("w14") == null) doc.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml"); - Network accessline 446
if (doc.LookupNamespace("w14") == null) doc.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml"); var ignorable = doc.MCAttributes?.Ignorable?.Value ?? ""; - Network accessline 447
doc.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml");
src/officecli/Handlers/Word/WordHandler.Helpers.FindReplace.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Helpers.HeaderFooter.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Helpers.RunFormat.cs
src/officecli/Handlers/Word/WordHandler.Helpers.SectionTable.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Helpers.Structure.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Helpers.Style.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Helpers.Text.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 110
private static bool IsRunContainerWrapper(OpenXmlElement el) { const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 111
{ const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; return el.NamespaceUri == wNs - Network accessline 112
const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 149
private static void AppendUnknownRunText(StringBuilder sb, OpenXmlElement unknownRun) { const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 150
{ const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; // Recurse into nested unknown wrappers (smartTag>smartTag>r) too. - Network accessline 151
const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 246
} else if (element.LocalName == "customXml" && element.NamespaceUri == "http://schemas.openxmlformats.org/wordprocessingml/2006/main") - Network accessline 247
else if (element.LocalName == "customXml" && element.NamespaceUri == "http://schemas.openxmlformats.org/wordprocessingml/2006/main") { - Network accessline 248
&& element.NamespaceUri == "http://schemas.openxmlformats.org/wordprocessingml/2006/main") - Possible obfuscationline 453
case SoftHyphen: sb.Append('<U+00AD>'); break; // soft hyphen
src/officecli/Handlers/Word/WordHandler.Helpers.TextEffect.cs
src/officecli/Handlers/Word/WordHandler.Helpers.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.HtmlPreview.Charts.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 89
sb.Append($"<div style=\"display:flex;flex-direction:{flexDir};align-items:{(info.LegendPos == "tr" ? "flex-start" : "center")};justify-content:center;gap:8px\">"); } sb.Append($"<svg width=\"{svgW}\" height=\"{chart - Network accessline 91
sb.Append($"<svg width=\"{svgW}\" height=\"{chartSvgH}\" xmlns=\"http://www.w3.org/2000/svg\" style=\"{bgStyle}\">"); - Network accessline 158
sb.Append($"<div style=\"font-weight:bold;margin-bottom:4px;font-size:{info.TitleFontSize}\">{ChartSvgRenderer.BuildTitleInnerHtml(info, "inherit", info.TitleBold, wTitlePt > 0 ? wTitlePt : 12)}</div>"); } sb.Append( - Network accessline 159
} sb.Append($"<svg width=\"{svgW}\" height=\"{chartSvgH}\" xmlns=\"http://www.w3.org/2000/svg\" style=\"background:white;\">"); renderer.RenderChartSvgContent(sb, info, svgW, chartSvgH); - Network accessline 160
sb.Append($"<svg width=\"{svgW}\" height=\"{chartSvgH}\" xmlns=\"http://www.w3.org/2000/svg\" style=\"background:white;\">");
src/officecli/Handlers/Word/WordHandler.HtmlPreview.Css.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.HtmlPreview.Markers.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.HtmlPreview.Shapes.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 1518
sb.Append( "<svg style=\"display:block;width:100%;height:100%;overflow:visible\" " + "viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\" xmlns=\"http://www.w3.org/2000/svg\">"); - Network accessline 1519
"<svg style=\"display:block;width:100%;height:100%;overflow:visible\" " + "viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\" xmlns=\"http://www.w3.org/2000/svg\">"); var sw = strokeW.ToString("0.##", System.Globalizat - Network accessline 1520
"viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\" xmlns=\"http://www.w3.org/2000/svg\">");
src/officecli/Handlers/Word/WordHandler.HtmlPreview.Tables.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.HtmlPreview.Text.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 717
// control rendered nothing. else if (node.LocalName is "sdt" or "sdtContent" or "smartTag" or "customXml" or "fldSimple" && node.NamespaceUri == "http://schemas.openxmlformats.org/wordpro - Network accessline 718
else if (node.LocalName is "sdt" or "sdtContent" or "smartTag" or "customXml" or "fldSimple" && node.NamespaceUri == "http://schemas.openxmlformats.org/wordprocessingml/2006/main") Ren - Network accessline 719
&& node.NamespaceUri == "http://schemas.openxmlformats.org/wordprocessingml/2006/main") - Network accessline 720
RenderWrapperContent(node); else if (node is DocumentFormat.OpenXml.OpenXmlUnknownElement unk && unk.NamespaceUri == "http://schemas.openxmlformats.org/wordprocessingml/2006/main") - Network accessline 721
else if (node is DocumentFormat.OpenXml.OpenXmlUnknownElement unk && unk.NamespaceUri == "http://schemas.openxmlformats.org/wordprocessingml/2006/main") { - Network accessline 722
&& unk.NamespaceUri == "http://schemas.openxmlformats.org/wordprocessingml/2006/main") - Network accessline 739
if (!string.IsNullOrEmpty(xml) && !xml.Contains("xmlns:w=", StringComparison.Ordinal)) xml = xml.Replace("<w:r ", "<w:r xmlns:w=\"http://schemas.openxml - Network accessline 740
xml = xml.Replace("<w:r ", "<w:r xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" ", StringComparison.Ordinal) - Network accessline 741
"<w:r xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" ", - Network accessline 742
StringComparison.Ordinal) .Replace("<w:r>", "<w:r xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\">", - Network accessline 743
.Replace("<w:r>", "<w:r xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\">", StringComparison.Ordinal); - Network accessline 744
"<w:r xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\">",
src/officecli/Handlers/Word/WordHandler.HtmlPreview.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 265
sb.AppendLine("fams.forEach(function(f){if(has(f))return;"); sb.AppendLine("var q='family='+encodeURIComponent(f).replace(/%20/g,'+')+ax;"); sb.AppendLine("var l=document.createElement('link');l.rel='styleshe - Network accessline 266
sb.AppendLine("var q='family='+encodeURIComponent(f).replace(/%20/g,'+')+ax;"); sb.AppendLine("var l=document.createElement('link');l.rel='stylesheet';l.href='https://d.officecli.ai/fonts/css2?'+q;"); sb.Appe - Network accessline 267
sb.AppendLine("var l=document.createElement('link');l.rel='stylesheet';l.href='https://d.officecli.ai/fonts/css2?'+q;"); - Network accessline 268
sb.AppendLine("l.onerror=function(){if(!l.dataset.f){l.dataset.f=1;l.href='https://fonts.googleapis.com/css2?'+q;}else{l.remove();}};"); - Network accessline 608
sb.AppendLine(" if(typeof katex!=='undefined'){"); sb.AppendLine(" document.querySelectorAll('.katex-formula:not(.katex-rendered)').forEach(function(el){"); sb.AppendLine(" try{katex.render(el.dataset.formula,el,{th - Network accessline 609
sb.AppendLine(" document.querySelectorAll('.katex-formula:not(.katex-rendered)').forEach(function(el){"); sb.AppendLine(" try{katex.render(el.dataset.formula,el,{throwOnError:false,displayMode:!!el.dataset.display});}catch(e - Network accessline 610
sb.AppendLine(" try{katex.render(el.dataset.formula,el,{throwOnError:false,displayMode:!!el.dataset.display});}catch(e){el.textContent=el.dataset.formula+' (Error: '+e.message+'. See https://katex.org/docs/supported.html for supported
src/officecli/Handlers/Word/WordHandler.I18n.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.ImageHelpers.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 78
) ) ) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" } - Network accessline 79
) ) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" } ) - Network accessline 80
) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" } - Network accessline 216
{ Preset = A.ShapeTypeValues.Rectangle }) ) ) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" } - Network accessline 217
) ) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" } ) - Network accessline 218
) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" } - Network accessline 318
// OpenXmlUnknownElement under the typed extension list. private const string DecorativeExtUri = "{C183D7F6-DF14-4A22-8298-3B9A5F5C6C3B}"; private const string DecorativeNs = "http://schemas.microsoft.com/office/drawing/2017/decorat - Network accessline 320
private const string DecorativeNs = "http://schemas.microsoft.com/office/drawing/2017/decorative"; - Network accessline 699
// BUG-DUMP-R45-4: drawingml main namespace (the `a:` prefix the captured // blip/spPr effect fragments use, with no xmlns of their own). private const string DrawingMainNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 701
private const string DrawingMainNs = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 757
if (spPr?.Parent == null) return; const string NsDecls = " xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\"" + - Network accessline 758
const string NsDecls = " xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\"" + " xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"" + - Network accessline 759
" xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\"" + - Network accessline 760
" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"" + - Network accessline 761
" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"" + - Network accessline 762
" xmlns:a14=\"http://schemas.microsoft.com/office/drawing/2010/main\""; - Network accessline 934
drawAspect = attr.Value; else if (attr.LocalName == "id" && attr.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships") - Network accessline 935
else if (attr.LocalName == "id" && attr.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships") relId = attr.Value; - Network accessline 936
&& attr.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships")
src/officecli/Handlers/Word/WordHandler.Mutations.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 364
// now-empty carrier paragraph the diagram was emitted into. if (element.LocalName == "wgp" && element.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup") - Network accessline 365
if (element.LocalName == "wgp" && element.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup") { - Network accessline 366
&& element.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup") - Network accessline 413
{ var imgRid = vimg.GetAttributes().FirstOrDefault(a => a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships").Value; - Network accessline 414
var imgRid = vimg.GetAttributes().FirstOrDefault(a => a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships").Value; if (!string.IsNullOrEmp - Network accessline 415
&& a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships").Value; - Network accessline 424
{ var oleRid = oleEl.GetAttributes().FirstOrDefault(a => a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships").Value; - Network accessline 425
var oleRid = oleEl.GetAttributes().FirstOrDefault(a => a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships").Value; if (!string.IsNullOrEm - Network accessline 426
&& a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships").Value; - Network accessline 1272
// reject rather than move the neighbours with it. if (element.LocalName == "wgp" && element.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup") - Network accessline 1273
if (element.LocalName == "wgp" && element.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup") { - Network accessline 1274
&& element.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup") - Network accessline 1678
{ if (ReferenceEquals(sourcePart, targetPart)) return; const string rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 1679
if (ReferenceEquals(sourcePart, targetPart)) return; const string rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; foreach (var el in clone.Descendants().Prepend(clone).ToList()) - Network accessline 1680
const string rNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 1782
// Mirrors the oMathPara / oMath rejection above. if (element.LocalName == "wgp" && element.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup") - Network accessline 1783
if (element.LocalName == "wgp" && element.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup") { - Network accessline 1784
&& element.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup")
src/officecli/Handlers/Word/WordHandler.Navigation.DocSettings.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Navigation.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 1112
{ var empty = new List<string>(); const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 1113
var empty = new List<string>(); const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; // DOM-side fingerprint: the non-empty wrapper-run texts of this paragraph. - Network accessline 1114
const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 1548
.Select(d => (OpenXmlElement?)d.Descendants().FirstOrDefault(e => e.LocalName == "txbxContent" && e.NamespaceUri == "http://schemas.openxmlformats.org/wordprocessingml/2006/main")) - Network accessline 1549
e.LocalName == "txbxContent" && e.NamespaceUri == "http://schemas.openxmlformats.org/wordprocessingml/2006/main")) .Where(e => e != null) - Network accessline 1550
&& e.NamespaceUri == "http://schemas.openxmlformats.org/wordprocessingml/2006/main")) - Network accessline 1560
.Select(d => (OpenXmlElement?)d.Descendants().FirstOrDefault(e => e.LocalName == "wsp" && e.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingShape")) - Network accessline 1561
e.LocalName == "wsp" && e.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingShape")) .Where(e => e != null) - Network accessline 1562
&& e.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingShape")) - Network accessline 1570
.Select(d => (OpenXmlElement?)d.Descendants().FirstOrDefault(e => e.LocalName == "wgp" && e.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup")) - Network accessline 1571
e.LocalName == "wgp" && e.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup")) .Where(e => e != null) - Network accessline 1572
&& e.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup")) - Network accessline 3018
// Use OriginalString rather than ToString() — System.Uri normalises // a bare authority by appending a trailing `/` (e.g. // `https://example.com` → `https://example.com/`), which would - Network accessline 3019
// a bare authority by appending a trailing `/` (e.g. // `https://example.com` → `https://example.com/`), which would // surface as a get-side drift the on-disk .rels Target lacks. - Network accessline 3020
// `https://example.com` → `https://example.com/`), which would - Network accessline 5318
// Surface them as synthetic fieldChar/instrText nodes so the // emitter can collapse them into a `field` row. const string wNs2 = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 5319
// emitter can collapse them into a `field` row. const string wNs2 = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; var bareFieldUnknowns = para.Elements<DocumentFormat.OpenXml.OpenXmlUnknownElement> - Network accessline 5320
const string wNs2 = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 5800
// <w:r>/<w:t> children we find so the inner text round-trips // through dump→batch instead of vanishing. const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 5801
// through dump→batch instead of vanishing. const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; // BUG-DUMP-R35-2: smartTag/customXml wrappers parse as - Network accessline 5802
const string wNs = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; - Network accessline 6240
return SdtRunToNode(sdtRunNode, node); else if (element.LocalName == "wgp" && element.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup") - Network accessline 6241
else if (element.LocalName == "wgp" && element.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup") return WgpGroupToNode(element, node, path); - Network accessline 6242
&& element.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup") - Network accessline 6618
} // Shading — check for gradient (w14:gradFill in mc:AlternateContent) first var mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 6619
// Shading — check for gradient (w14:gradFill in mc:AlternateContent) first var mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; var gradAc = tcPr.ChildElements - Network accessline 6620
var mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006";
src/officecli/Handlers/Word/WordHandler.Query.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Selector.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.SeqEval.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Set.Compatibility.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 196
Name = new EnumValue<CompatSettingNameValues>(CompatSettingNameValues.CompatibilityMode), Val = new StringValue(mode.ToString()), Uri = new StringValue("http://schemas.microsoft.com/office/word") - Network accessline 197
Val = new StringValue(mode.ToString()), Uri = new StringValue("http://schemas.microsoft.com/office/word") }); - Network accessline 198
Uri = new StringValue("http://schemas.microsoft.com/office/word")
src/officecli/Handlers/Word/WordHandler.Set.Dispatch.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Set.DocDefaults.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Set.DocSettings.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Set.Element.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 589
{ var relAttr = oleEl.GetAttributes().FirstOrDefault(a => a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); - Network accessline 590
var relAttr = oleEl.GetAttributes().FirstOrDefault(a => a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); var oldRel - Network accessline 591
&& a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); - Network accessline 598
// Update r:id attribute in place. oleEl.SetAttribute(new OpenXmlAttribute("r", "id", "http://schemas.openxmlformats.org/officeDocument/2006/relationships", newEmbedRel)); - Network accessline 599
oleEl.SetAttribute(new OpenXmlAttribute("r", "id", "http://schemas.openxmlformats.org/officeDocument/2006/relationships", newEmbedRel)); // Refresh ProgID if it wasn't explicitly p - Network accessline 600
"http://schemas.openxmlformats.org/officeDocument/2006/relationships", newEmbedRel)); - Network accessline 670
var mainIcon = _doc.MainDocumentPart!; var oldIconRelAttr = imagedata.GetAttributes().FirstOrDefault(a => a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument - Network accessline 671
var oldIconRelAttr = imagedata.GetAttributes().FirstOrDefault(a => a.LocalName == "id" && a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); if (oldIconRelAt - Network accessline 672
&& a.NamespaceUri == "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); - Network accessline 681
var newIconRel = mainIcon.GetIdOfPart(newIconPart); imagedata.SetAttribute(new OpenXmlAttribute("r", "id", "http://schemas.openxmlformats.org/officeDocument/2006/relationships", newIconRel)); - Network accessline 682
imagedata.SetAttribute(new OpenXmlAttribute("r", "id", "http://schemas.openxmlformats.org/officeDocument/2006/relationships", newIconRel)); break; - Network accessline 683
"http://schemas.openxmlformats.org/officeDocument/2006/relationships", newIconRel)); - Network accessline 3355
var wsp = txbx.Ancestors() .FirstOrDefault(e => e.LocalName == "wsp" && e.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingShape"); - Network accessline 3356
.FirstOrDefault(e => e.LocalName == "wsp" && e.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingShape"); if (wsp == null) - Network accessline 3357
&& e.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingShape"); - Network accessline 3379
const string ANs = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 3380
const string WpNs = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"; - Network accessline 3523
{ var unsupported = new List<string>(); const string ANs = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 3524
var unsupported = new List<string>(); const string ANs = "http://schemas.openxmlformats.org/drawingml/2006/main"; const string WpNs = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"; - Network accessline 3525
const string ANs = "http://schemas.openxmlformats.org/drawingml/2006/main"; - Network accessline 3526
const string WpNs = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"; - Network accessline 3730
// built fragment out of the parsed spPr. var wrapXml = $@"<w:p xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main"" xmlns:wp=""http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"" - Network accessline 3731
var wrapXml = $@"<w:p xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main"" xmlns:wp=""http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"" xmlns:a=""http://schemas.openxmlformats.org/drawi - Network accessline 3732
$@"<w:p xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main"" xmlns:wp=""http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"" xmlns:a=""http://schemas.openxmlformats.org/drawingml/2006/main"" xmlns:wps - Network accessline 3733
var p = new Paragraph(wrapXml); var spPr = p.Descendants().FirstOrDefault(e => e.LocalName == "spPr" && e.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingShape"); - Network accessline 3734
var spPr = p.Descendants().FirstOrDefault(e => e.LocalName == "spPr" && e.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingShape"); var first = spPr?.FirstChild - Network accessline 3735
&& e.NamespaceUri == "http://schemas.microsoft.com/office/word/2010/wordprocessingShape");
src/officecli/Handlers/Word/WordHandler.Set.Revision.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Set.SectionLayout.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/Word/WordHandler.Set.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 626
if (string.Equals(element.LocalName, "wsp", StringComparison.Ordinal) && string.Equals(element.NamespaceUri, "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", StringComparison.Ordinal)) - Network accessline 627
&& string.Equals(element.NamespaceUri, "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", StringComparison.Ordinal)) return SetShapeProps(element, properties); - Network accessline 628
"http://schemas.microsoft.com/office/word/2010/wordprocessingShape", StringComparison.Ordinal)) - Network accessline 633
if (string.Equals(element.LocalName, "wgp", StringComparison.Ordinal) && string.Equals(element.NamespaceUri, "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", StringComparison.Ordinal)) - Network accessline 634
&& string.Equals(element.NamespaceUri, "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", StringComparison.Ordinal)) return SetGroupProps(element, properties); - Network accessline 635
"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", StringComparison.Ordinal)) - Network accessline 2082
// Build w14:gradFill XML via raw OpenXml var w14Ns = "http://schemas.microsoft.com/office/word/2010/wordml"; - Network accessline 2083
var w14Ns = "http://schemas.microsoft.com/office/word/2010/wordml"; - Network accessline 2084
var mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 2110
private static void RemoveCellGradient(TableCellProperties tcPr) { var mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; - Network accessline 2111
{ var mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006"; var existing = tcPr.ChildElements - Network accessline 2112
var mcNs = "http://schemas.openxmlformats.org/markup-compatibility/2006";
src/officecli/Handlers/Word/WordHandler.StyleList.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 357
foreach (var child in source.ChildElements) { if (child.NamespaceUri != "http://schemas.microsoft.com/office/word/2010/wordml") continue; - Network accessline 358
{ if (child.NamespaceUri != "http://schemas.microsoft.com/office/word/2010/wordml") continue; // Remove existing w14 element with same local name, then add the new one - Network accessline 359
if (child.NamespaceUri != "http://schemas.microsoft.com/office/word/2010/wordml") continue;
src/officecli/Handlers/Word/WordHandler.View.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Handlers/WordHandler.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 544
private const string RelNs = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; - Network accessline 1965
private static readonly (string prefix, string uri)[] _wordFragmentNs = { ("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main"), - Network accessline 1966
{ ("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main"), ("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"), - Network accessline 1967
("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main"), - Network accessline 1968
("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"), - Network accessline 1969
("a", "http://schemas.openxmlformats.org/drawingml/2006/main"), - Network accessline 1970
("wp", "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"), - Network accessline 1971
("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"), - Network accessline 1972
("pic", "http://schemas.openxmlformats.org/drawingml/2006/picture"), - Network accessline 1973
("w14", "http://schemas.microsoft.com/office/word/2010/wordml"), - Network accessline 1974
("wps", "http://schemas.microsoft.com/office/word/2010/wordprocessingShape"), - Network accessline 1975
("wpg", "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup"), - Network accessline 1976
("a14", "http://schemas.microsoft.com/office/drawing/2010/main"),
src/officecli/Help/SchemaCrc.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Help/SchemaHelpFlatRenderer.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Help/SchemaHelpLoader.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Help/SchemaHelpRenderer.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/McpInstaller.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI) - Network accessline 306
private static void InstallOpenCode() => InstallJson("OpenCode", GetOpenCodeConfigPath(), "mcp", openCodeShape: true, schemaUrl: "https://opencode.ai/config.json"); - Network accessline 308
schemaUrl: "https://opencode.ai/config.json");
src/officecli/McpServer.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Program.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/ResidentClient.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/ResidentDirtyMarker.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/ResidentServer.cs
- Network accessline 1
// Copyright 2026 OfficeCLI (https://OfficeCLI.AI)
src/officecli/Resources/chartex-colors.xml
- Network accessline 1
<cs:colorStyle xmlns:cs="http://schemas.microsoft.com/office/drawing/2012/chartStyle" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" meth="cycle" id="10"><a:schemeClr val="accent1"/><a:schemeClr val="accent2"/><a:schemeClr
src/officecli/Resources/chartex-style.xml
- Network accessline 1
<cs:chartStyle xmlns:cs="http://schemas.microsoft.com/office/drawing/2012/chartStyle" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" id="419"><cs:axisTitle><cs:lnRef idx="0"/><cs:fillRef idx="0"/><cs:effectRef idx="0"/><cs:
src/officecli/Resources/preview.js
- Executable scriptline 1
Executable file
src/officecli/Resources/watch-overlay.js
- Executable scriptline 1
Executable file - Network accessline 178
function postSelection(paths) { fetch('/api/selection', { - Network accessline 179
fetch('/api/selection', { - Network accessline 686
var newRow = Math.max(0, currentRow + dRows); var newCol = Math.max(0, currentCol + dCols); fetch('/api/send', { - Network accessline 687
var newCol = Math.max(0, currentCol + dCols); fetch('/api/send', { method: 'POST', - Network accessline 688
fetch('/api/send', { - Network accessline 742
fetch('/api/send', { - Dangerous shell operationline 838
var rm = hp.match(/^(\/[^/]+)\/row\[(\d+)\]$/);
src/officecli/Resources/watch-sse-core.js
- Executable scriptline 1
Executable file - Network accessline 40
function _replaceDocumentBody(msg) { fetch('/').then(function(r) { return r.text(); }).then(function(html) { - Network accessline 41
fetch('/').then(function(r) { return r.text(); }).then(function(html) { - Network accessline 145
} }); fetch('/').then(function(r) { return r.text(); }).then(function(html) { - Network accessline 146
}); fetch('/').then(function(r) { return r.text(); }).then(function(html) { var doc = new DOMParser().parseFromString(html, 'text/html'); - Network accessline 147
fetch('/').then(function(r) { return r.text(); }).then(function(html) {
src/officecli/officecli.csproj
- Network accessline 9
<Authors>goworm</Authors> <Company>OfficeCLI</Company> <Copyright>Copyright © 2026 OfficeCLI (https://OfficeCLI.AI)</Copyright> - Network accessline 10
<Company>OfficeCLI</Company> <Copyright>Copyright © 2026 OfficeCLI (https://OfficeCLI.AI)</Copyright> <IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion> - Network accessline 11
<Copyright>Copyright © 2026 OfficeCLI (https://OfficeCLI.AI)</Copyright>
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Combined signals: 2 facts
- Passes content downloaded from d.officecli.ai to an interpreterSKILL.md:16High confidence
- Passes content downloaded from d.officecli.ai to an interpreterSKILL.md:19High confidence
Signal confidence: 498 facts
- Executable script in a comment of a file that runs.oss-scanner/Dockerfile:1Low confidence
- Dangerous shell operation in code of a file that runs.oss-scanner/Dockerfile:11High confidence
- Dangerous shell operation in code of a file that runs.oss-scanner/Dockerfile:13High confidence
- Dangerous shell operation in code of a file that runs.oss-scanner/Dockerfile:25High confidence
- Dangerous shell operation in code of a file that runs.oss-scanner/Dockerfile:31High confidence
- Network access in prose of documentationREADME.md:11Low confidence
- Network access in prose of documentationREADME.md:12Low confidence
- Network access in prose of documentationREADME.md:16Low confidence
- Network access in prose of documentationREADME.md:17Low confidence
- Network access in prose of documentationREADME.md:24Low confidence
- Network access in code of documentationREADME.md:70Low confidence
- Network access in prose of documentationREADME.md:77Low confidence
- Network access in prose of documentationREADME.md:79Low confidence
- Network access in code of documentationREADME.md:90Low confidence
- Dangerous shell operation in code of documentationREADME.md:91Low confidence
- Network access in code of documentationREADME.md:91Low confidence
- Network access in code of documentationREADME.md:92Low confidence
- Network access in code of documentationREADME.md:97Low confidence
- Network access in prose of documentationREADME.md:179Low confidence
- Network access in prose of documentationREADME.md:181Low confidence
- Network access in prose of documentationREADME.md:183Low confidence
- Network access in code of documentationREADME.md:209Low confidence
- Dangerous shell operation in code of documentationREADME.md:210Low confidence
- Network access in code of documentationREADME.md:210Low confidence
- Network access in code of documentationREADME.md:212Low confidence
- Network access in code of documentationREADME.md:213Low confidence
- Network access in prose of documentationREADME.md:229Low confidence
- Network access in code of documentationREADME.md:266Low confidence
- Network access in code of documentationREADME.md:268Low confidence
- Network access in prose of documentationREADME.md:337Low confidence
- Network access in prose of documentationREADME.md:339Low confidence
- Network access in prose of documentationREADME.md:372Low confidence
- Network access in code of documentationREADME.md:400Low confidence
- Network access in code of documentationREADME.md:406Low confidence
- Network access in prose of documentationREADME.md:513Low confidence
- Network access in prose of documentationREADME.md:514Low confidence
- Network access in prose of documentationREADME.md:515Low confidence
- Network access in prose of documentationREADME.md:516Low confidence
- Network access in prose of documentationREADME.md:517Low confidence
- Network access in prose of documentationREADME.md:518Low confidence
- Network access in prose of documentationREADME.md:519Low confidence
- Network access in prose of documentationREADME.md:520Low confidence
- Network access in prose of documentationREADME.md:521Low confidence
- Network access in prose of documentationREADME.md:522Low confidence
- Network access in prose of documentationREADME.md:523Low confidence
- Network access in prose of documentationREADME.md:524Low confidence
- Network access in prose of documentationREADME.md:525Low confidence
- Network access in prose of documentationREADME.md:526Low confidence
- Network access in prose of documentationREADME.md:527Low confidence
- Network access in prose of documentationREADME.md:528Low confidence
and 448 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/iofficeai-officecli/)