OfficeCLI Chart Types for PowerPoint and Excel: Complete Supported List

OfficeCLI supports 12+ native chart types—including bar, column, line, area, scatter, pie, doughnut, bubble, radar, waterfall, and combo charts—with full read/write capabilities for both PowerPoint (.pptx) and Excel (.xlsx) files.

The iOfficeAI/OfficeCLI library provides programmatic access to Office Open XML chart elements through its ChartHelper.Reader module. This C# implementation maps native Open XML chart elements to textual chartType values, enabling round-trip editing of presentations and spreadsheets while preserving visual fidelity and custom styling.

Supported Chart Types in OfficeCLI

OfficeCLI detects and manipulates charts by iterating over the <c:plotArea> children in the Open XML structure. The following chart categories are fully supported for both PowerPoint and Excel documents.

Bar and Column Charts

OfficeCLI distinguishes between horizontal bar and vertical column orientations, including stacking variants:

  • Base types: bar and column map to <c:barChart> elements with <c:barDirection> values of bar or col
  • Stacked variants: barstacked, columnstacked, barpercentstacked, and columnpercentstacked are detected via the <c:grouping> child element

According to the source code in src/officecli/Core/Chart/ChartHelper.Reader.cs, the base type identification occurs at lines 33-44, while the stacking suffix logic (appending stacked or percentstacked) is implemented at lines 45-55.

Line, Area, and Scatter Charts

  • Line charts (line): Map directly to <c:lineChart> elements
  • Area charts (area): Support areastacked and areapercentstacked variants using the same grouping detection logic as bar charts via <c:areaChart>
  • Scatter charts (scatter): Represent XY-scatter series through <c:scatterChart> elements

Pie, Doughnut, and Bubble Charts

  • Pie charts (pie): Classic pie visualization via <c:pieChart>
  • Doughnut charts (doughnut): Hollow-center variants via <c:doughnutChart>
  • Bubble charts (bubble): Support bubble-size encoding through <c:bubbleChart> elements

Radar and Waterfall Charts

  • Radar charts (radar): Spider/radar charts via <c:radarChart>
  • Waterfall charts (waterfall): Special case detection when the plot area contains a <c:barChart> with waterfall-specific series. The CLI surfaces custom colors for increase, decrease, and total bars as implemented at lines 95-100 in ChartHelper.Reader.cs

Combo (Mixed) Charts

Combo charts (combo) represent any combination of the above types within a single <c:plotArea>. OfficeCLI handles mixed-type charts by:

  • Recording per-series types in the comboTypes property (e.g., column,line)
  • Storing the split point in combosplit to indicate where the chart type changes

This logic is implemented in ChartHelper.Reader.cs at lines 122-170, where the code extracts multiple chart elements from the same plot area and preserves their relationships for faithful reconstruction.

How Chart Type Detection Works

The detection algorithm in ChartHelper.Reader.cs uses a switch statement to map Open XML elements to string identifiers. When reading a chart, the code:

  1. Iterates over children of <c:plotArea>
  2. Assigns a chartType string based on the concrete element encountered (lines 33-44)
  3. Appends stacking modifiers (stacked or percentstacked) by examining the <c:grouping> node (lines 45-55)
  4. For waterfall charts, detects the specific pattern and extracts custom color properties (lines 95-100)
  5. For combo charts, builds a list of types and identifies the split index (lines 122-170)

The ChartHelper.Setter.cs file performs the inverse operation, using the detected chartType to generate the correct Open XML structure when writing back to the document.

Working with Charts via CLI

The following examples demonstrate practical usage of these chart types through the officecli command-line interface:


# Add a stacked column chart to slide 3 (PowerPoint)

officecli add my-presentation.pptx /slide[3] --type chart \
    --prop chartType=columnstacked --prop title="Quarterly Sales"

# Change a pie chart in Excel sheet 2 to a doughnut chart

officecli set my-workbook.xlsx /sheet[2]/chart[1] --prop chartType=doughnut

# Replace a combo chart's series type list (e.g., column + line) in PowerPoint

officecli set my-presentation.pptx /slide[5]/chart[2] \
    --prop comboTypes=column,line --prop combosplit=1

Because PowerPoint and Excel share the same Open XML chart model, these commands work uniformly across both .pptx and .xlsx formats.

Key Implementation Files

File Role
src/officecli/Core/Chart/ChartHelper.Reader.cs Reads chart XML, detects chart types, and extracts style-specific properties (e.g., waterfall colors)
src/officecli/Core/Chart/ChartHelper.Setter.cs Writes chart properties back using the detected chartType to generate correct Open XML
src/officecli/Handlers/Pptx/PptxBatchEmitter.Charts.cs Emits PowerPoint chart batches using core chart-type logic
src/officecli/Handlers/Xlsx/XlsxBatchEmitter.Charts.cs Emits Excel chart batches sharing the same detection algorithms

Summary

  • OfficeCLI supports 12+ chart types including all standard bar, column, line, area, pie, doughnut, bubble, radar, waterfall, and combo variations
  • Chart detection occurs in ChartHelper.Reader.cs through element inspection and grouping analysis
  • Stacking variants are determined by examining <c:grouping> nodes, appending stacked or percentstacked to base types
  • Combo charts preserve per-series types and split points to maintain mixed-type visualizations
  • The same implementation supports both PowerPoint (.pptx) and Excel (.xlsx) formats through shared Open XML chart models

Frequently Asked Questions

What file formats does OfficeCLI support for chart editing?

OfficeCLI supports both PowerPoint (.pptx) and Excel (.xlsx) formats. Because both applications use the same Office Open XML chart model, the chart types and detection logic in ChartHelper.Reader.cs apply uniformly to presentations and spreadsheets.

How does OfficeCLI handle stacked chart variants?

Stacked and 100% stacked variants are detected by examining the <c:grouping> child element after identifying the base chart type. The code appends stacked or percentstacked to the base type string (e.g., column becomes columnstacked), as implemented at lines 45-55 of ChartHelper.Reader.cs.

Can OfficeCLI modify waterfall chart colors?

Yes. When detecting a waterfall chart (chartType=waterfall), OfficeCLI specifically extracts custom color properties for increase, decrease, and total bars. These values are preserved during round-trip operations, allowing you to modify waterfall styling programmatically.

What is a combo chart in OfficeCLI terms?

A combo chart is any visualization containing multiple chart types within a single plot area (e.g., columns combined with lines). OfficeCLI stores these as combo type with a comboTypes property listing the series types and a combosplit property indicating where the chart type changes, enabling faithful reconstruction of mixed-type visualizations.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →