Effectual Report Generator¶
Preview Version
This documentation is currently being worked on and may be incomplete or subject to change. If you spot any mistakes or have suggestions, please contact one of the maintainers.
Authors: Ewald Hild and Jan Mellert
Overview¶
This project is a python-based toolkit for automated generation of PowerPoint reports with optional Think-Cell integration. This toolkit uses Excel files, SharePoint locations and API Endpoints as data sources and predefined PowerPoint templates to automatically create presentations. This Tool has been developed for Perpetual / Effectual
Key Features¶
- Automated Report Generation - Generate reports for any specified time period
- Excel Integration - Use Excel files as data sources with placeholder support
- Template-Based - Work with existing PowerPoint presentations as templates
- Flexible Output - Save as
.pptxor.ppttcfiles - Modular Architecture - Separate utility modules for Excel, PowerPoint, and Think-Cell operations
Think-Cell Integration
Exporting to .pptx format with Think-Cell objects requires running the toolkit on Windows or MacOS with an active Think-Cell installation and license.
Requirements¶
- Python: 3.12 or higher
- Operating System: Cross-platform (Windows required for Think-Cell
.ppttcexport) - Think-Cell: Active installation and license (for
.ppttcexport only)
Quick Start¶
# Clone the repository
git clone https://github.com/Effctl/effctl-report-generator/
cd effctl-report-generator
# Install dependencies
pip install -e .
Basic Usage¶
from pathlib import Path
from pptx import Presentation
from effctl_lib.excel_utils import format_excel_data
from effctl_lib.pptx_utils import traverse_pptx
# Define paths
excel_path = Path("resources/inputs.xlsx")
template_path = Path("resources/template.pptx")
output_path = Path("output/report.pptx")
# Load and format data
data = format_excel_data(
excel_path,
sheet_name="Example Sheet",
column_var="Variable",
column_data="Data"
)
# Generate presentation
presentation = Presentation(template_path)
traverse_pptx(presentation, data)
presentation.save(output_path)
Documentation Sections¶
- Installation Guide - Detailed installation instructions and setup
- User Guide - Complete usage examples and workflows
- API Reference - Comprehensive API documentation
- Configuration - Configuration options and settings
- Examples - Practical examples and use cases
- Contributing - Development guidelines and testing
Support¶
For issues or questions that are not covered in the documentation, please contact the maintainers via E-Mail or Teams:
-
Ewald Hild: 📧 ewald.hild@effctl.com
-
Jan Mellert: 📧 jan.mellert@effctl.com
For bug reports or feature requests, please use the GitHub Issue Tracker