# OfficeCLI Chart Types for PowerPoint and Excel: Complete Supported List

> Discover OfficeCLI chart types for PowerPoint and Excel. This powerful tool supports 12+ native chart types with full read/write capabilities for your .pptx and .xlsx files.

- Repository: [OfficeAI/OfficeCLI](https://github.com/iofficeai/OfficeCLI)
- Tags: api-reference
- Published: 2026-07-25

---

**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`](https://github.com/iOfficeAI/OfficeCLI/blob/main/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`](https://github.com/iOfficeAI/OfficeCLI/blob/main/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`](https://github.com/iOfficeAI/OfficeCLI/blob/main/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`](https://github.com/iOfficeAI/OfficeCLI/blob/main/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`](https://github.com/iOfficeAI/OfficeCLI/blob/main/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:

```bash

# 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`](https://github.com/iOfficeAI/OfficeCLI/blob/main/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`](https://github.com/iOfficeAI/OfficeCLI/blob/main/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`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/Handlers/Pptx/PptxBatchEmitter.Charts.cs) | Emits PowerPoint chart batches using core chart-type logic |
| [`src/officecli/Handlers/Xlsx/XlsxBatchEmitter.Charts.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/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`](https://github.com/iOfficeAI/OfficeCLI/blob/main/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`](https://github.com/iOfficeAI/OfficeCLI/blob/main/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`](https://github.com/iOfficeAI/OfficeCLI/blob/main/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.