Back to Portfolio

Automated Invoice Generator

Streamlined invoice creation and management system

Project Overview

View on GitHub
Automated Invoice Generator Component Diagram

How This System Works

PythonAutomationInvoice ManagementBusiness Process

The Automated Invoice Generator is a Python-based tool designed to automate the generation, export, and delivery of professional invoices from Excel order data. This system streamlines the entire invoice workflow, from processing order data to sending completed invoices via email.

Key Features & Capabilities

Excel-based Processing

Reads order data from Excel files and converts to structured invoice data

Automatic Tax Calculations

Handles complex tax calculations and PO number management automatically

Multiple Export Formats

Supports both XLSX and PDF export formats with professional formatting

Automated Email Delivery

Direct Outlook integration for automated invoice delivery with attachments

Core Components

The system consists of several key Python modules:

  • LoadOrders: Reads orders.xlsx and converts to list of dictionaries
  • FormatInvoice: Populates invoice templates with order data
  • ExportInvoice: Saves invoices as .xlsx or .pdf files
  • SendInvoice: Attaches and sends invoices via Outlook integration
  • GenerateAllInvoices: One-click pipeline to process all orders

Technical Requirements

Local Installation

  • • Python 3.7+
  • • Windows OS (for PDF generation)
  • • Microsoft Excel (for PDF generation)
  • • Microsoft Outlook (for email delivery)

Docker Installation

  • • Docker environment
  • • Cross-platform support (Windows/Linux)
  • • LibreOffice (Linux PDF generation)
  • • win32com (Windows Excel integration)

Email Integration

The application includes comprehensive Outlook email integration for sending invoices directly from the application:

Email Features

  • • Direct Microsoft Outlook integration
  • • Multiple recipients and CC support
  • • File attachment capabilities
  • • Comprehensive error handling

Requirements

  • • Windows OS
  • • Microsoft Outlook installed
  • • pywin32 package
  • • Unit tested functionality

Example Usage

from invoice import SendInvoice

SendInvoice(
    emailAddr="recipient@example.com",
    filePath="invoice.pdf",
    cc="accounting@example.com",
    additional_attachments=["invoice.xlsx"]
)

Business Benefits

Automated Workflow

End-to-end automation from Excel to email delivery

Professional Output

Consistent, professional invoice formatting

Cross-Platform

Docker support for Windows and Linux

🔗 Project Repository

This project is open source and available on GitHub. You can view the complete source code, documentation, and contribute to the development. Includes comprehensive test coverage with pytest.

Project Details

Technologies Used

Python 3.7+Excel ProcessingPDF GenerationOutlook IntegrationDockerpytest

Date Created

June 8, 2025