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