# Excel Filter Tool - Streamlit Web Application A modern web-based Excel filtering tool built with Streamlit. This application allows you to filter Excel files using regex patterns, numeric filters, and column selection - all from your browser without installing any software. ## Features - 📁 **Easy File Upload**: Drag and drop Excel files (.xlsx, .xls) - 🔍 **Regex Filtering**: Filter rows using powerful regex patterns - 🔢 **Numeric Filters**: Filter by numeric comparisons (>, <, >=, <=, =) - 📊 **Column Selection**: Choose specific columns for output - 🌐 **Multi-language Support**: German and English interface - 📈 **Statistics**: View filtering statistics and retention rates - 💾 **Configuration**: Save and load filter configurations ## Quick Start ### Run Locally (Windows) ```bash run_streamlit.bat ``` ### Run Locally (Linux/Mac) ```bash chmod +x run_streamlit.sh ./run_streamlit.sh ``` ### Run with Docker ```bash docker build -t excel-filter . docker run -p 8501:8501 excel-filter ``` ### Run with Docker Compose ```bash docker-compose up -d ``` ## Coolify Deployment ### Option 1: Docker Compose 1. Push this repository to your Git server 2. In Coolify, create a new resource and select "Docker Compose" 3. Point to your repository 4. Deploy! ### Option 2: Dockerfile 1. In Coolify, create a new resource and select "Dockerfile" 2. Point to your repository 3. Set the port to `8501` 4. Deploy! ### Environment Variables (Optional) No environment variables are required, but you can set: - `TZ` - Timezone (default: UTC) ## Usage 1. **Upload**: Drag and drop an Excel file or click to browse 2. **Select Sheet**: Choose the worksheet to filter 3. **Configure Filters**: - **Regex Tab**: Enable regex filtering and enter a pattern - **Numeric Tab**: Set up numeric comparisons - **Columns Tab**: Select which columns to include 4. **Apply**: Click "Apply Filters" to process 5. **Download**: Click "Download Filtered File" to get results ## File Structure ``` ├── streamlit_app.py # Main Streamlit application ├── Dockerfile # Docker configuration ├── docker-compose.yml # Docker Compose configuration ├── .dockerignore # Docker ignore file ├── .streamlit/ │ └── config.toml # Streamlit configuration ├── run_streamlit.bat # Windows runner script ├── run_streamlit.sh # Linux/Mac runner script └── excel_filter/ # Core filter module ├── filter.py # Main filter logic ├── requirements.txt # Python dependencies └── locales/ # Translations ├── de.json └── en.json ``` ## Regex Examples | Pattern | Description | |---------|-------------| | `error\|warning` | Find rows with "error" OR "warning" | | `[0-9]{4}` | Find 4-digit numbers | | `[a-z]+@[a-z]+\.[a-z]{2,}` | Find email addresses | | `\d{4}-\d{2}-\d{2}` | Find dates (YYYY-MM-DD) | | `error.*critical` | Find "error" followed by "critical" | ## Development ### Prerequisites - Python 3.11+ - pip ### Installation ```bash python -m venv venv source venv/bin/activate # Linux/Mac # or venv\Scripts\activate # Windows pip install -r excel_filter/requirements.txt pip install streamlit ``` ### Run Development Server ```bash streamlit run streamlit_app.py ``` ## License See LICENSE file for details.