Files

6.8 KiB
Raw Permalink Blame History

Chart parity

Last reviewed: 2026-10-11 · Last updated: 2026-10-12 · Change: trivial (chart sheets are kept on save, still not editable (#727); previously minor: trendlines: model, XLSX round-trip, drawing, Add Chart Element) · Target: Microsoft Excel (Microsoft 365), Excel for Mac 16.113.4

Excel's chart types and chart elements against GridCraft. Part of target-app-parity.md. Breadth ~50%, ready ~30%, 40–60 h (estimated).

Sources: crates/model/src/features.rs (ChartKind, Chart, Series), crates/chart/src (layout and rendering), crates/xlsx/src/chart.rs (DrawingML chart parts), merged PRs #62 and #116, open PRs #158, #161, and issue #190.

Chart types

Excel type Excel subtypes GridCraft Notes
Column clustered, stacked, 100% stacked, 3-D clustered/stacked/100%, 3-D column 3 of 7 no 3-D
Bar clustered, stacked, 100%, 3-D ×3 3 of 6 no 3-D
Line line, stacked, 100% stacked, with markers ×3, 3-D line 3 of 7 (line, with markers, stacked) no 100% stacked; smoothed lines landed (#62)
Pie pie, 3-D pie, pie of pie, bar of pie, doughnut 2 of 5 (pie, doughnut) no exploded, pie of pie, bar of pie
Area area, stacked, 100%, 3-D ×3 2 of 6 no 100%, no 3-D
X Y (scatter) markers, smooth lines (±markers), straight lines (±markers) 2 of 5 no smooth lines
Bubble bubble, 3-D bubble 1 of 2
Stock high-low-close, open-high-low-close, volume-HLC, volume-OHLC 1 kind combo/stock lose their kind in XLSX (PR #158)
Surface 3-D surface, wireframe, contour, wireframe contour 0 of 4
Radar radar, with markers, filled 1 of 3
Treemap, Sunburst 1 each 2 of 2 lose their kind in XLSX (PR #161)
Histogram, Pareto 2 1 of 2 no Pareto
Box & Whisker 1 1 of 1 loses its kind in XLSX (PR #161)
Waterfall, Funnel 2 2 of 2 lose their kind in XLSX (PR #161)
Filled map 1 0 needs geographic boundary data (licensing decision)
Combo custom combinations, secondary axis yes (line on secondary axis)
Total ~60 subtypes 25 (~42%) usage-weighted breadth higher (~65%): column, bar, line, pie and scatter dominate

Chart elements and formatting

Element Excel GridCraft
Move and resize the chart object yes yes (corner handle, Format Chart Area Size fields)
Chart title, axis titles text, linked to cells, full formatting text only
Legend position, overlay, formatting, per-entry delete position only
Data labels value, category, series, percentage, from cells, callouts, position one on/off flag
Gridlines major/minor per axis, formatting one on/off flag
Axis options min/max/units, log scale, reverse order, crossing point, display units, date axis, number format missing (auto only)
Secondary axis any series line series in combo charts
Trendlines linear, exponential, logarithmic, polynomial, power, moving average, equation and R² all six types, several per series, name, forward/backward forecast, set intercept, equation and R² label, line colour/width/dash; read, written and drawn on 2-D column, bar, line, area, scatter and bubble series; chart.addElement trendline adds/removes them. No Format Trendline pane, label position/number format not kept
Error bars fixed, %, standard deviation/error, custom missing
Up/down bars, high-low lines, drop lines, series lines yes missing
Data table under the chart yes missing
Per-series / per-point fill, line, marker, effects Format pane for every element series colour only; Format Chart pane covers chart-level options
Chart styles and colour palettes ~16 styles × colour sets style number stored, own palettes
Chart sheets yes kept, not editable: not shown, and written back unchanged in their place on save (#727); left out when a sheet they plot is deleted or renamed. No F11 / Move Chart > New sheet
Chart templates (.crtx) yes missing
Recommended Charts yes dialog with recommendations from the data's shape (own heuristic) and an All Charts list, live previews (#215)
Switch Row/Column, Select Data yes yes (Switch on charts read from files landed in #116)
Recommended Charts yes partial (Insert ▸ Recommended)
Switch Row/Column, Select Data yes yes (Switch on charts read from files landed in #116); Select Data dialog: data range, remove series, Horizontal (Category) Axis Labels (#287). No series add/edit or hidden/empty cell options
Sparklines (line, column, win/loss, markers, axis) yes line, column, win/loss
PivotCharts yes Insert ▸ PivotChart (insert.pivotChart): bound to a PivotTable's report, rebuilt on refresh and layout changes, c:pivotSource round trip; no field buttons, innermost category level only
Animation on data change yes (Windows) no

XLSX round-trip

Charts are read from and written to DrawingML chart parts, but only the fields the model holds survive: anything else (axis scaling, label options, error bars, per-point formats, chartex extensions) is lost when GridCraft saves a workbook it opened. That is the main reason charts are ~30% ready: a user who opens an Excel workbook with charts and saves it gets simpler charts back.

Work (40–60 h)

  1. Kinds survive XLSX round-trip (merge PRs #158, #161): 2–4 h. Chart resizing (#190): 1–2 h.
  2. Preserve unmodelled chart XML on round-trip (keep the original part, patch only edited fields): 6–10 h.
  3. Axis options, label options, gridlines per axis, legend formatting: 10–15 h.
  4. Error bars; Format Trendline pane (trendlines landed): 4–6 h.
  5. Per-element Format pane parity, smoothed lines, exploded pie, pie/bar of pie, 100% variants: 8–12 h.
  6. 3-D column/bar/pie/area, surface and contour, Pareto: 8–12 h.
  7. Chart sheets, templates, PivotChart field buttons and multi-level categories: 6–10 h. Filled map: owner decision on boundary data.

Revision history

Date Change Summary
2026-10-12 trivial chart sheets are kept on save, still not editable (#727)
2026-10-11 minor Trendlines: all six types modelled, round-tripped through c:trendline, drawn with forecast and equation/R² labels; chart.addElement trendline
2026-10-11 minor PivotCharts (insert.pivotChart)
2026-10-11 minor Recommended Charts dialog with previews (#215)
2026-10-11 minor Select Data dialog with category axis labels; a blank top-left cell makes the first column the categories (#287)
2026-10-10 minor Smooth lines (#62) and Switch Row/Column on file charts (#116) landed; chart resize bug (#190)
2026-10-10 major Created from a source audit: 25 kinds (25 of ~60 subtypes), element gaps, round-trip loss