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
242 lines
10 KiB
Bash
Executable File
242 lines
10 KiB
Bash
Executable File
#!/bin/bash
|
|
# Advanced Charts Showcase — generates charts-advanced.xlsx exercising the
|
|
# xlsx `chart` element's advanced chart types: scatter, bubble, combo, radar,
|
|
# and stock (OHLC). 12 charts across 3 sheets.
|
|
#
|
|
# CLI twin of charts-advanced.py (officecli Python SDK). Both produce an
|
|
# equivalent charts-advanced.xlsx.
|
|
#
|
|
# Usage:
|
|
# ./charts-advanced.sh
|
|
# NOTE: intentionally NO `set -e`. Like the SDK twin's doc.batch, this script
|
|
# tolerates forward-compat 'UNSUPPORTED props' warnings (officecli exit 2) and
|
|
# keeps building so the full document is produced.
|
|
FILE="$(dirname "$0")/charts-advanced.xlsx"
|
|
rm -f "$FILE"
|
|
|
|
officecli create "$FILE"
|
|
officecli open "$FILE"
|
|
|
|
# ==========================================================================
|
|
# Sheet: 1-Scatter & Bubble
|
|
# ==========================================================================
|
|
officecli add "$FILE" / --type sheet --prop name="1-Scatter & Bubble"
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Chart 1: Scatter with markers — circle markers, line connecting points
|
|
# Features: chartType=scatter, categories as X values, marker=circle,
|
|
# markerSize, lineWidth, legend=bottom
|
|
# --------------------------------------------------------------------------
|
|
officecli add "$FILE" "/1-Scatter & Bubble" --type chart \
|
|
--prop chartType=scatter \
|
|
--prop title="Scatter: Markers & Line" \
|
|
--prop categories=1,2,3,4,5,6 \
|
|
--prop series1=SeriesA:10,25,15,40,30,50 \
|
|
--prop series2=SeriesB:5,18,22,35,28,42 \
|
|
--prop colors=4472C4,ED7D31 \
|
|
--prop x=0 --prop y=0 --prop width=12 --prop height=18 \
|
|
--prop marker=circle --prop markerSize=8 \
|
|
--prop lineWidth=1.5 \
|
|
--prop legend=bottom
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Chart 2: Scatter with smooth curve and trendline (reference line)
|
|
# Features: smooth=true (smooth curve), marker=diamond,
|
|
# referenceLine (trendline overlay), axisTitle, catTitle
|
|
# --------------------------------------------------------------------------
|
|
officecli add "$FILE" "/1-Scatter & Bubble" --type chart \
|
|
--prop chartType=scatter \
|
|
--prop title="Scatter: Smooth + Trendline" \
|
|
--prop categories=1,2,3,4,5,6,7,8 \
|
|
--prop series1=Growth:3,7,12,20,28,35,40,45 \
|
|
--prop colors=70AD47 \
|
|
--prop x=13 --prop y=0 --prop width=12 --prop height=18 \
|
|
--prop smooth=true \
|
|
--prop marker=diamond --prop markerSize=7 \
|
|
--prop referenceLine=25:FF0000:Target:dash \
|
|
--prop axisTitle=Value --prop catTitle=Period
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Chart 3: Scatter with varied marker styles per series
|
|
# Features: per-series marker style (series{N}.marker), gridlines styling
|
|
# --------------------------------------------------------------------------
|
|
officecli add "$FILE" "/1-Scatter & Bubble" --type chart \
|
|
--prop chartType=scatter \
|
|
--prop title="Scatter: Marker Styles" \
|
|
--prop categories=10,20,30,40,50 \
|
|
--prop series1=Squares:8,22,18,35,30 \
|
|
--prop series2=Triangles:15,10,28,20,42 \
|
|
--prop series3=Stars:5,30,12,45,25 \
|
|
--prop colors=4472C4,ED7D31,70AD47 \
|
|
--prop x=0 --prop y=19 --prop width=12 --prop height=18 \
|
|
--prop series1.marker=square \
|
|
--prop series2.marker=triangle \
|
|
--prop series3.marker=star \
|
|
--prop markerSize=9 \
|
|
--prop lineWidth=1 \
|
|
--prop gridlines=D9D9D9:0.5:dot
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Chart 4: Bubble chart with size data
|
|
# Features: chartType=bubble, categories as X, series as Y values,
|
|
# bubble sizes default to Y values, bubbleScale to control sizing
|
|
# --------------------------------------------------------------------------
|
|
officecli add "$FILE" "/1-Scatter & Bubble" --type chart \
|
|
--prop chartType=bubble \
|
|
--prop title="Bubble: Market Size" \
|
|
--prop categories=10,25,40,60,80 \
|
|
--prop series1=ProductA:30,50,20,70,45 \
|
|
--prop series2=ProductB:15,35,55,40,60 \
|
|
--prop colors=4472C4,ED7D31 \
|
|
--prop x=13 --prop y=19 --prop width=12 --prop height=18 \
|
|
--prop bubbleScale=80 \
|
|
--prop legend=right
|
|
|
|
# ==========================================================================
|
|
# Sheet: 2-Combo & Radar
|
|
# ==========================================================================
|
|
officecli add "$FILE" / --type sheet --prop name="2-Combo & Radar"
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Chart 1: Combo chart — bar+line with comboSplit
|
|
# Features: chartType=combo, comboSplit=2 (first 2 series as bars,
|
|
# remaining as lines), categories as X labels
|
|
# --------------------------------------------------------------------------
|
|
officecli add "$FILE" "/2-Combo & Radar" --type chart \
|
|
--prop chartType=combo \
|
|
--prop title="Combo: Sales (Bar) + Growth % (Line)" \
|
|
--prop categories=Jan,Feb,Mar,Apr,May,Jun \
|
|
--prop series1=Revenue:120,145,132,168,155,180 \
|
|
--prop series2=Expenses:80,92,85,98,90,105 \
|
|
--prop series3=Growth:8,12,6,15,10,16 \
|
|
--prop colors=4472C4,ED7D31,70AD47 \
|
|
--prop x=0 --prop y=0 --prop width=12 --prop height=18 \
|
|
--prop comboSplit=2 \
|
|
--prop legend=bottom \
|
|
--prop axisTitle=Amount --prop catTitle=Month
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Chart 2: Combo with secondary axis
|
|
# Features: comboSplit=1, secondaryAxis=2 (series 2 on right Y-axis)
|
|
# --------------------------------------------------------------------------
|
|
officecli add "$FILE" "/2-Combo & Radar" --type chart \
|
|
--prop chartType=combo \
|
|
--prop title="Combo: Volume (Bar) + Price (Line, 2nd Axis)" \
|
|
--prop categories=Q1,Q2,Q3,Q4 \
|
|
--prop series1=Volume:1200,1450,1320,1680 \
|
|
--prop series2=AvgPrice:45,52,48,58 \
|
|
--prop colors=5B9BD5,FF0000 \
|
|
--prop x=13 --prop y=0 --prop width=12 --prop height=18 \
|
|
--prop comboSplit=1 \
|
|
--prop secondaryAxis=2 \
|
|
--prop legend=bottom
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Chart 3: Combo with combotypes — per-series type control
|
|
# Features: combotypes (per-series type: column, column, line, area)
|
|
# --------------------------------------------------------------------------
|
|
officecli add "$FILE" "/2-Combo & Radar" --type chart \
|
|
--prop chartType=combo \
|
|
--prop title="Combo: Mixed Types (combotypes)" \
|
|
--prop categories=A,B,C,D,E \
|
|
--prop series1=Bars:30,45,28,52,40 \
|
|
--prop series2=MoreBars:20,30,22,38,28 \
|
|
--prop series3=Lines:12,18,15,22,16 \
|
|
--prop series4=Area:8,12,10,15,11 \
|
|
--prop colors=4472C4,5B9BD5,ED7D31,70AD47 \
|
|
--prop x=0 --prop y=19 --prop width=12 --prop height=18 \
|
|
--prop combotypes=column,column,line,area \
|
|
--prop legend=bottom
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Chart 4: Radar (spider) chart with multiple series
|
|
# Features: chartType=radar, categories as spoke labels,
|
|
# multiple series, radarStyle=marker
|
|
# --------------------------------------------------------------------------
|
|
officecli add "$FILE" "/2-Combo & Radar" --type chart \
|
|
--prop chartType=radar \
|
|
--prop title="Radar: Skills Comparison" \
|
|
--prop categories=Speed,Strength,Stamina,Agility,Accuracy \
|
|
--prop series1=AthleteA:80,65,90,75,85 \
|
|
--prop series2=AthleteB:70,85,60,90,70 \
|
|
--prop series3=AthleteC:90,70,75,65,80 \
|
|
--prop colors=4472C4,ED7D31,70AD47 \
|
|
--prop x=13 --prop y=19 --prop width=12 --prop height=18 \
|
|
--prop radarStyle=marker \
|
|
--prop legend=bottom
|
|
|
|
# ==========================================================================
|
|
# Sheet: 3-Stock & Radar
|
|
# ==========================================================================
|
|
officecli add "$FILE" / --type sheet --prop name="3-Stock & Radar"
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Chart 1: Stock (OHLC) chart — Open-High-Low-Close
|
|
# Features: chartType=stock, 4 series (Open/High/Low/Close),
|
|
# categories as date labels, catTitle, axisTitle
|
|
# --------------------------------------------------------------------------
|
|
officecli add "$FILE" "/3-Stock & Radar" --type chart \
|
|
--prop chartType=stock \
|
|
--prop title="Stock: OHLC Daily Prices" \
|
|
--prop categories=Mon,Tue,Wed,Thu,Fri \
|
|
--prop series1=Open:145,148,150,147,152 \
|
|
--prop series2=High:152,155,157,153,160 \
|
|
--prop series3=Low:143,146,148,144,150 \
|
|
--prop series4=Close:148,150,147,152,158 \
|
|
--prop x=0 --prop y=0 --prop width=14 --prop height=18 \
|
|
--prop legend=bottom \
|
|
--prop catTitle=Day --prop axisTitle=Price
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Chart 2: Stock chart — weekly OHLC with date categories
|
|
# Features: stock chart with 6 weeks of OHLC, gridlines styling
|
|
# --------------------------------------------------------------------------
|
|
officecli add "$FILE" "/3-Stock & Radar" --type chart \
|
|
--prop chartType=stock \
|
|
--prop title="Stock: Weekly OHLC (6 Weeks)" \
|
|
--prop categories=W1,W2,W3,W4,W5,W6 \
|
|
--prop series1=Open:100,104,102,108,105,110 \
|
|
--prop series2=High:106,110,108,115,112,118 \
|
|
--prop series3=Low:98,101,100,105,103,107 \
|
|
--prop series4=Close:104,102,108,105,110,115 \
|
|
--prop x=15 --prop y=0 --prop width=14 --prop height=18 \
|
|
--prop gridlines=E0E0E0:0.75 \
|
|
--prop legend=bottom
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Chart 3: Radar — filled style (spider web)
|
|
# Features: radarStyle=filled, transparency (fill alpha), multiple series
|
|
# --------------------------------------------------------------------------
|
|
officecli add "$FILE" "/3-Stock & Radar" --type chart \
|
|
--prop chartType=radar \
|
|
--prop title="Radar: Product Ratings (Filled)" \
|
|
--prop categories=Quality,Price,Design,Support,Delivery \
|
|
--prop series1=BrandX:85,70,90,75,80 \
|
|
--prop series2=BrandY:70,90,65,85,75 \
|
|
--prop colors=4472C4,70AD47 \
|
|
--prop x=0 --prop y=19 --prop width=14 --prop height=18 \
|
|
--prop radarStyle=filled \
|
|
--prop transparency=40 \
|
|
--prop legend=bottom
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Chart 4: Bubble — single series with explicit large differences in size
|
|
# Features: bubble with single series, bubbleScale=100, legend=none,
|
|
# axisTitle and catTitle labels
|
|
# --------------------------------------------------------------------------
|
|
officecli add "$FILE" "/3-Stock & Radar" --type chart \
|
|
--prop chartType=bubble \
|
|
--prop title="Bubble: Regional Opportunity" \
|
|
--prop categories=5,15,30,50,70,90 \
|
|
--prop series1=Regions:20,45,30,80,55,65 \
|
|
--prop colors=4472C4 \
|
|
--prop x=15 --prop y=19 --prop width=14 --prop height=18 \
|
|
--prop bubbleScale=100 \
|
|
--prop legend=none \
|
|
--prop axisTitle=Revenue --prop catTitle="Market Size"
|
|
|
|
officecli close "$FILE"
|
|
|
|
officecli validate "$FILE"
|
|
echo "Generated: $FILE"
|