Files
wehub-resource-sync 8cb1f9f479
Publish SDK (PyPI) / publish (push) Has been cancelled
Publish SDK (npm) / publish (@aionui/officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (windows-latest) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/officecli-sdk) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/sdk) (push) Has been cancelled
Publish SDK (npm) / publish (officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (macos-latest) (push) Has been cancelled
SDK smoke / smoke (ubuntu-latest) (push) Has been cancelled
Skill parity / diff (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:09:29 +08:00

268 lines
9.2 KiB
Markdown

# Basic Charts Showcase
This demo consists of three files that work together:
- **charts-basic.py** — Python script that calls `officecli` commands to generate the workbook. Each chart command is shown as a copyable shell command in the comments, then executed by the script.
- **charts-basic.xlsx** — The generated workbook with 8 sheets (1 data + 7 chart sheets, 28 charts total). Open in Excel to see the rendered charts.
- **charts-basic.md** — This file. Maps each sheet to the features it demonstrates.
## Regenerate
```bash
cd examples/excel
python3 charts-basic.py
# → charts-basic.xlsx
```
## Source Data
**Sheet1**: 12 months of regional sales data (East, South, North, West) used by all charts.
## Chart Sheets
### Sheet: 1-Column Charts
Four column chart variants demonstrating the column family.
```bash
# Basic clustered column with axis titles and axis font
officecli add data.xlsx /Sheet --type chart \
--prop chartType=column \
--prop title="Regional Sales" \
--prop dataRange=Sheet1!A1:E13 \
--prop catTitle=Month --prop axisTitle=Sales \
--prop axisfont=9:58626E:Arial \
--prop gridlines=D9D9D9:0.5:dot
# Stacked column with custom colors, data labels, gap control, series outline
officecli add data.xlsx /Sheet --type chart \
--prop chartType=columnStacked \
--prop colors=2E75B6,70AD47,FFC000,C00000 \
--prop dataLabels=true --prop labelPos=center \
--prop gapwidth=60 \
--prop series.outline=FFFFFF-0.5
# 100% stacked with legend positioning and plot fill
officecli add data.xlsx /Sheet --type chart \
--prop chartType=columnPercentStacked \
--prop legend=bottom --prop legendfont=9:8B949E \
--prop plotFill=F5F5F5
# 3D column with perspective and title styling
officecli add data.xlsx /Sheet --type chart \
--prop chartType=column3d \
--prop view3d=15,20,30 \
--prop title.font=Calibri --prop title.size=16 \
--prop title.color=1F4E79 --prop title.bold=true
```
**Features:** `column`, `columnStacked`, `columnPercentStacked`, `column3d`, `dataRange`, `catTitle`, `axisTitle`, `axisfont`, `gridlines`, `colors`, `dataLabels`, `labelPos`, `gapwidth`, `series.outline`, `legend`, `legendfont`, `plotFill`, `view3d`, `title.font/size/color/bold`
### Sheet: 2-Bar Charts
Four horizontal bar chart variants.
```bash
# Horizontal bar with inline data and gap control
officecli add data.xlsx /Sheet --type chart \
--prop chartType=bar \
--prop 'data=East:198;South:158;North:142;West:180' \
--prop gapwidth=80 \
--prop dataLabels=true --prop labelPos=outsideEnd
# Stacked bar with named series and overlap
officecli add data.xlsx /Sheet --type chart \
--prop chartType=barStacked \
--prop series1=H1:663,598,528,661 \
--prop series2=H2:833,718,669,868 \
--prop gapwidth=50 --prop overlap=0
# 100% stacked bar with reference line and axis lines
# Note: value axis of a barPercentStacked chart is 0-1 (= 0%-100%), so a 50% line = 0.5
# referenceLine forms: value | value:color | value:color:label | value:color:width:dash
# | value:color:label:dash | value:color:width:dash:label
# Width is in points (default 1.5pt). e.g. 0.5:FF0000:2:dash draws a 2pt dashed line.
officecli add data.xlsx /Sheet --type chart \
--prop chartType=barPercentStacked \
--prop referenceLine=0.5:FF0000:Target:dash \
--prop axisLine=333333:1:solid \
--prop catAxisLine=333333:1:solid
# 3D bar with chart area fill and preset style
officecli add data.xlsx /Sheet --type chart \
--prop chartType=bar3d \
--prop view3d=10,30,20 \
--prop chartFill=F2F2F2 \
--prop style=3
```
**Features:** `bar`, `barStacked`, `barPercentStacked`, `bar3d`, inline `data`, named `series`, `gapwidth`, `overlap`, `labelPos=outsideEnd`, `referenceLine`, `axisLine`, `catAxisLine`, `chartFill`, `style`
### Sheet: 3-Line Charts
Four line chart variants with markers, smoothing, and data tables.
```bash
# Line with cell-range series (dotted syntax) and markers
officecli add data.xlsx /Sheet --type chart \
--prop chartType=line \
--prop series1.name=East \
--prop series1.values=Sheet1!B2:B13 \
--prop series1.categories=Sheet1!A2:A13 \
--prop showMarkers=true --prop marker=circle:6:2E75B6 \
--prop gridlines=D9D9D9:0.5:dot \
--prop minorGridlines=EEEEEE:0.3:dot
# Smooth line with series shadow
officecli add data.xlsx /Sheet --type chart \
--prop chartType=line \
--prop smooth=true --prop lineWidth=2.5 \
--prop gridlines=none \
--prop series.shadow=000000-4-315-2-40
# Stacked line with tick marks
officecli add data.xlsx /Sheet --type chart \
--prop chartType=lineStacked \
--prop majorTickMark=outside --prop tickLabelPos=low
# Dashed line with data table and hidden legend
officecli add data.xlsx /Sheet --type chart \
--prop chartType=line \
--prop lineDash=dash --prop lineWidth=1.5 \
--prop dataTable=true --prop legend=none
```
**Features:** `series1.name/values/categories` (cell range), `showMarkers`, `marker` (style:size:color), `smooth`, `lineWidth`, `lineDash`, `gridlines`, `minorGridlines`, `series.shadow`, `lineStacked`, `majorTickMark`, `tickLabelPos`, `dataTable`, `legend=none`
### Sheet: 4-Area Charts
Four area chart variants with transparency and gradients.
```bash
# Area with transparency and gradient
officecli add data.xlsx /Sheet --type chart \
--prop chartType=area \
--prop transparency=40 \
--prop gradient=4472C4-BDD7EE:90
# Stacked area with plot fill and rounded corners
officecli add data.xlsx /Sheet --type chart \
--prop chartType=areaStacked \
--prop plotFill=F5F5F5 --prop roundedCorners=true
# 100% stacked area with axis visibility control
officecli add data.xlsx /Sheet --type chart \
--prop chartType=areaPercentStacked \
--prop axisVisible=true --prop axisLine=999999:0.5:solid
# 3D area with perspective
officecli add data.xlsx /Sheet --type chart \
--prop chartType=area3d \
--prop view3d=20,25,15
```
**Features:** `area`, `areaStacked`, `areaPercentStacked`, `area3d`, `transparency`, `gradient`, `plotFill`, `roundedCorners`, `axisVisible`, `axisLine`
### Sheet: 5-Styling
Demonstrates styling and formatting properties on various charts.
```bash
# Fully styled chart: title effects, legend, axis fonts, series effects
officecli add data.xlsx /Sheet --type chart \
--prop title.font=Georgia --prop title.size=18 \
--prop title.color=1F4E79 --prop title.bold=true \
--prop title.shadow=000000-3-315-2-30 \
--prop legendfont=10:444444:Helvetica --prop legend=right \
--prop axisfont=9:58626E:Arial \
--prop series.outline=FFFFFF-0.5 \
--prop series.shadow=000000-3-315-2-25 \
--prop roundedCorners=true --prop referenceLine=160:FF0000:1:dash
# Dual Y-axis (secondary axis)
officecli add data.xlsx /Sheet --type chart \
--prop secondaryAxis=2
# Per-point coloring and negative value inversion
officecli add data.xlsx /Sheet --type chart \
--prop point1.color=70AD47 --prop point3.color=FF0000 \
--prop invertIfNeg=true
# Gradient plot fill and custom data label text
officecli add data.xlsx /Sheet --type chart \
--prop plotFill=E8F0FE-FFFFFF:90 \
--prop marker=diamond:8:4472C4 \
--prop dataLabels.numFmt=#,##0 \
--prop dataLabel3.text=Peak!
```
**Features:** `title.shadow`, `secondaryAxis`, `point{N}.color`, `invertIfNeg`, `plotFill` gradient, `dataLabels.numFmt`, `dataLabel{N}.text`
### Sheet: 6-Layout
Manual positioning and axis control properties.
```bash
# Manual layout of plot area, title, legend
officecli add data.xlsx /Sheet --type chart \
--prop plotArea.x=0.15 --prop plotArea.y=0.15 \
--prop plotArea.w=0.7 --prop plotArea.h=0.7 \
--prop title.x=0.3 --prop title.y=0.01 \
--prop legend.x=0.02 --prop legend.y=0.4 \
--prop legend.overlay=true
# Logarithmic scale, reversed axis, display units
officecli add data.xlsx /Sheet --type chart \
--prop logBase=10 \
--prop axisOrientation=maxMin \
--prop dispUnits=thousands
# Label font, separator, per-label hide
officecli add data.xlsx /Sheet --type chart \
--prop labelFont=11:2E75B6:true \
--prop "dataLabels.separator=: " \
--prop dataLabel2.text=Best! \
--prop dataLabel3.delete=true
# Error bars, minor ticks, opacity
officecli add data.xlsx /Sheet --type chart \
--prop errBars=percentage \
--prop majorTickMark=outside --prop minorTickMark=inside \
--prop opacity=80
```
**Features:** `plotArea.x/y/w/h`, `title.x/y`, `legend.x/y`, `legend.overlay`, `logBase`, `axisOrientation`, `dispUnits`, `labelFont`, `dataLabels.separator`, `dataLabel{N}.delete`, `errBars`, `minorTickMark`, `opacity`
### Sheet: 7-Effects
Visual effects: gradients, conditional colors, glow, presets.
```bash
# Per-series gradients
officecli add data.xlsx /Sheet --type chart \
--prop 'gradients=4472C4-BDD7EE:90;ED7D31-FBE5D6:90'
# Area fill gradient and title glow
officecli add data.xlsx /Sheet --type chart \
--prop areafill=4472C4-BDD7EE:90 \
--prop title.glow=4472C4-8-60
# Conditional coloring (below/above threshold)
officecli add data.xlsx /Sheet --type chart \
--prop colorRule=60:FF0000:70AD47
# Preset style and leader lines
officecli add data.xlsx /Sheet --type chart \
--prop style=26 \
--prop dataLabels.showLeaderLines=true
```
**Features:** `gradients`, `areafill`, `title.glow`, `colorRule`, `style`, `dataLabels.showLeaderLines`
## Inspect the Generated File
```bash
officecli query charts-basic.xlsx chart
officecli get charts-basic.xlsx "/1-Column Charts/chart[1]"
```