Excel tool im Browser

This commit is contained in:
jonasgaudian
2026-02-21 02:01:12 +01:00
parent 4bffc34aad
commit 0ce01e95a1
10 changed files with 1084 additions and 0 deletions

132
README_STREAMLIT.md Normal file
View File

@@ -0,0 +1,132 @@
# 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.