A Python-based automated report generation tool that transforms raw data into professional, formatted Excel reports with charts, pivot tables, and custom styling.
Regional sales breakdown with bar chart and pie chart visualizations
Product performance analysis with distribution charts
Detailed data with line chart showing sales and profit trends over time
Executive summary with key metrics
- Automated Formatting: Professional styling with headers, borders, and color schemes
- Dynamic Charts: Auto-generated charts and visualizations
- Multiple Data Sources: CSV, JSON, SQL databases, APIs
- Template System: Reusable report templates
- Data Validation: Built-in quality checks before report generation
- Scheduling Ready: Can be automated with cron/Task Scheduler
- Daily/weekly business reports
- Financial summaries and dashboards
- Sales performance reports
- Data exports from internal systems
- KPI tracking and monitoring
- Python 3.8+
- openpyxl - Excel file manipulation
- pandas - Data processing
- xlsxwriter - Advanced Excel features
- matplotlib/seaborn - Chart generation
excel-report-generator/
βββ report_generator.py # Main report generation engine
βββ data_loader.py # Load data from various sources
βββ formatters.py # Excel styling and formatting
βββ templates/ # Report templates
β βββ sales_report.py
β βββ financial_summary.py
βββ sample_data/ # Sample datasets
β βββ sample_sales.csv
βββ config.py # Configuration
βββ requirements.txt
βββ README.md
-
Clone the repository
git clone <your-repo-url> cd excel-report-generator
-
Install dependencies
pip install -r requirements.txt
-
Run sample report
python report_generator.py --template sales --input sample_data/sample_sales.csv
python report_generator.py --input data.csv --output report.xlsxpython report_generator.py --template financial --input data.csv --output monthly_report.xlsxpython report_generator.py --source database --query "SELECT * FROM sales" --output report.xlsx- Summary statistics
- Sales by region/product
- Trend charts
- Top performers
- Revenue breakdown
- Expense analysis
- Profit/loss statement
- Budget vs actual
Create your own template in templates/ directory.
- Professional headers with company colors
- Alternating row colors for readability
- Auto-fit columns
- Number formatting (currency, percentages, dates)
- Conditional formatting for KPIs
- Bar charts
- Line charts
- Pie charts
- Combo charts
- Sparklines
- Missing value checks
- Data type validation
- Range validation
- Duplicate detection
Edit config.py:
COMPANY_NAME = "Your Company"
PRIMARY_COLOR = "#4472C4"
SECONDARY_COLOR = "#ED7D31"
CHART_STYLE = 10# Create a batch file
python C:\path\to\report_generator.py --template sales --output daily_report.xlsx0 8 * * 1 /usr/bin/python3 /path/to/report_generator.py --template weeklySee examples/ directory for:
- Sales report example
- Financial dashboard example
- Custom formatting examples
- PDF export option
- Email integration (auto-send reports)
- Multiple sheet support
- Pivot table automation
- Web dashboard integration
- Real-time data refresh
Built to demonstrate automation skills and data reporting capabilities for business analyst roles.
MIT License