Skip to main content

Automated PowerPoint report generation from Excel data via COM

Project description

decx

Automated PowerPoint report generation from Excel data via COM.

decx reads data from Excel workbooks and updates linked OLE objects, tables, delta indicators, color coding, and charts in PowerPoint presentations — all driven from the command line.

Requirements

  • Windows (COM automation requires Windows)
  • Microsoft PowerPoint (installed and licensed)
  • Microsoft Excel (installed and licensed)
  • Python 3.11+

Installation

uv add decx

Or with pip:

pip install decx

Usage

Update presentations

# Single presentation with one Excel file
decx update report.pptx --excel data.xlsx

# Batch mode with explicit pptx:xlsx pairs
decx update --pair "us.pptx:us_data.xlsx" --pair "mx.pptx:mx_data.xlsx"

# Skip specific steps
decx update report.pptx --excel data.xlsx --skip-links --skip-charts

# Use a custom config file
decx update report.pptx --excel data.xlsx --config my_config.yaml

# Verbose output for debugging
decx update report.pptx --excel data.xlsx --verbose

Initialize config

Write the default config.yaml to the current directory:

decx init

Info

decx info

Version

decx --version

Configuration

decx ships with sensible defaults. Run decx init to generate a config.yaml you can customize:

heatmap:
  color_minimum: '#F8696B'
  color_midpoint: '#FFEB84'
  color_maximum: '#63BE7B'
  dark_font: '#000000'
  light_font: '#FFFFFF'

ccst:
  positive_color: '#33CC33'
  negative_color: '#ED0590'
  neutral_color: '#595959'
  positive_prefix: '+'
  symbol_removal: '%'

delta:
  template_positive: tmpl_delta_pos
  template_negative: tmpl_delta_neg
  template_none: tmpl_delta_none
  template_slide: 1

links:
  set_manual: true

Pipeline

  1. Re-link OLE objects — point linked Excel objects to a new data file
  2. Populate tables — read Excel ranges and write values into PowerPoint tables
  3. Delta indicators — swap arrow shapes based on positive/negative values
  4. Color coding — apply color rules to _ccst tables
  5. Update charts — refresh linked chart data sources

License

MIT

Repository

https://github.com/albertxli/decx

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

decx-0.1.0.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

decx-0.1.0-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

Details for the file decx-0.1.0.tar.gz.

File metadata

  • Download URL: decx-0.1.0.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for decx-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6ca35601a32b254205ec5786c95b7f47cebd6c8aee172020294d15ef4305e4f8
MD5 6c3eae9e6e3bda66ce1086a3411ca514
BLAKE2b-256 14eb74b0e9a6940a2a506349325ca8e1e4df2df521774864047986f60c52a522

See more details on using hashes here.

File details

Details for the file decx-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: decx-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for decx-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7225109c49553c2d7d0d602ed785d74857d18834c75130c5ba0455f2e298e029
MD5 9056e35f092fef7c8d7aef59167cadfe
BLAKE2b-256 9c7ecec4e6ee11fa83090fc12d481cc4478005360ba52a0940d8dd1fb9cfb293

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page