Automated Excel Report Filtering & Email Tool for processing delivery reports with customizable filters and Outlook integration.
This tool automates the process of filtering delivery reports by automatically detecting the latest report file in your Downloads folder, applying custom filters, and optionally sending the filtered results via Outlook email.
Perfect for teams that regularly process xmlRpt*.xls reports and need to quickly filter by dispatch zones, signed deliveries, driver assignments, and receive scans.
- Automatically finds the latest
xmlRpt*.xlsfile in your Downloads folder - Converts legacy
.xlsfiles to.xlsxformat automatically - Removes duplicate orders for clean data
- Filter by DispatchZone - Focus on specific zones
- Hide blank receive scans - Show only received items
- Filter out Driver data - Remove assigned deliveries
- Show unsigned deliveries - Display only blank SignedBy fields
- Quick defaults - One-click filtering with common settings
- Generate polished Excel reports
- Auto-create Outlook emails with attachments
- Customizable recipient lists
- Fallback: Open report directly in Excel
- Checks for new versions on startup
- Notifies users when updates are available
- One-click access to latest releases
- Go to the Releases page
- Download the latest
filter_and_email_report.exe - Run the executable - no installation required!
# Clone the repository
git clone https://github.com/jboyer0000/report-automation.git
cd report-automation
# Install dependencies
pip install -r requirements.txt
# Run the script
python filter_and_email_report.py- Download your report - After running the web query on Ecourier click 'save' instead of open in the the dialog that pops up. Ensure
xmlRpt*.xlsfile is in your Downloads folder - Run the tool - Double-click
filter_and_email_report.exe - Answer the prompts:
- Enter a DispatchZone to filter (or leave blank for all)
- Choose filter options (or use defaults)
- Choose output method:
- Send via Outlook email, or
- Open directly in Excel
π Downloads folder contains: xmlRpt_2024-11-18.xls
π Tool automatically:
β Finds latest report
β Converts to .xlsx
β Removes duplicates
β User chooses filters:
β’ DispatchZone: "100, 200, etc"
β’ Hide blank receive scans: yes
β’ Hide Driver data: yes
β’ Show blank SignedBy: yes
π Result:
β Filtered report saved as "filtered_report.xlsx"
β Outlook email created with attachment
β Ready to send!
| Filter | What It Does | When to Use |
|---|---|---|
| DispatchZone | Shows only rows matching a specific zone (e.g., "100", "700") | Focus on your hub |
| Hide blank receive scans | Removes rows where the "R" (receive) column is empty | Show only confirmed deliveries |
| Hide Driver data | Removes rows where Driver field has data | Show only unassigned deliveries |
| Show blank SignedBy | Keeps only rows where SignedBy is empty | Find unsigned/incomplete deliveries |
- OS: Windows 10/11
- Excel: Microsoft Excel (for .xls conversion and viewing)
- Outlook: Microsoft Outlook (optional - for email features)
- Internet: Required for auto-update checks
report-automation/
βββ filter_and_email_report.py # Main script
βββ filter_and_email_report.spec # PyInstaller build config
βββ version.txt # Version tracking
βββ tests/ # Unit tests
β βββ test_filters.py
βββ dist/ # Compiled executable
βββ filter_and_email_report.exe
# Using the spec file (recommended)
pyinstaller filter_and_email_report.spec --clean
# Output: dist/filter_and_email_report.exepandas- Data processingopenpyxl- Excel file handlingpywin32- Windows COM automation (Excel, Outlook)requests- Update checkingcolorama- Console colors
- Ensure
xmlRpt*.xlsfiles are in your Downloads folder - Check file naming matches the pattern
- Make sure Microsoft Excel is installed
- Try opening the file manually in Excel first
- Verify Outlook is installed and configured
- Use the "Open in Excel" option as alternative
- Check your internet connection
- The tool will continue without update check if offline
- π Fixed auto-updater 404 error
- π§ Updated version check to use GitHub raw content
- π¨ Improved error messaging with colors
- Added auto-update functionality
- Enhanced filter prompts
- Bug fixes and improvements
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Having issues? Open an issue on GitHub.
jboyer0000
- GitHub: @jboyer0000
- Repository: report-automation