Migrate to GitLab
This commit is contained in:
151
README.md
Normal file
151
README.md
Normal file
@@ -0,0 +1,151 @@
|
||||
# Excel Filter Tool
|
||||
|
||||
A Python application for filtering Excel files based on regex patterns with both CLI and GUI interfaces.
|
||||
|
||||
## Overview
|
||||
|
||||
The Excel Filter Tool allows you to:
|
||||
- Analyze Excel files without opening them
|
||||
- Filter rows based on configurable regex patterns
|
||||
- Create new Excel files with filtered data
|
||||
- Use a graphical interface or command line
|
||||
- Configure settings via JSON files
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Windows Users (Recommended)
|
||||
|
||||
**Pre-built installer available!**
|
||||
|
||||
Download and run `ExcelFilterSetup.exe` from the `dist/` directory for automatic installation including Python and all dependencies.
|
||||
|
||||
**OR** use the provided batch files:
|
||||
- `launch_gui_tkinter.bat` - Launches the Tkinter GUI (recommended)
|
||||
- `launch_gui.bat` - Launches the PySimpleGUI interface
|
||||
- `launch_cli.bat` - Launches the command line version
|
||||
|
||||
### macOS/Linux Users
|
||||
|
||||
```bash
|
||||
cd excel_filter
|
||||
pip install -r requirements.txt
|
||||
python -m src.excel_filter.gui
|
||||
```
|
||||
|
||||
For CLI usage:
|
||||
```bash
|
||||
python -m src.excel_filter.main --input input.xlsx --output output.xlsx --pattern "error|warning"
|
||||
```
|
||||
|
||||
### Command Line Usage
|
||||
|
||||
```bash
|
||||
python -m src.excel_filter.main --input input.xlsx --output output.xlsx --pattern "error|warning"
|
||||
```
|
||||
|
||||
### Graphical Interface
|
||||
|
||||
```bash
|
||||
python -m src.excel_filter.gui
|
||||
```
|
||||
|
||||
## Usage Guide
|
||||
|
||||
### Basic Filtering
|
||||
|
||||
```bash
|
||||
python -m src.excel_filter.main --input data.xlsx --output filtered.xlsx --pattern "error|warning|critical"
|
||||
```
|
||||
|
||||
### Filter Specific Columns
|
||||
|
||||
```bash
|
||||
python -m src.excel_filter.main --input data.xlsx --output filtered.xlsx --pattern "active" --columns "Status Message"
|
||||
```
|
||||
|
||||
### Using Configuration Files
|
||||
|
||||
Create a `config.json` file:
|
||||
|
||||
```json
|
||||
{
|
||||
"input_file": "input.xlsx",
|
||||
"output_file": "output_filtered.xlsx",
|
||||
"pattern": "error|warning|critical",
|
||||
"sheet_name": "Sheet1",
|
||||
"columns": ["Status", "Message", "Description"]
|
||||
}
|
||||
```
|
||||
|
||||
Then run:
|
||||
|
||||
```bash
|
||||
python -m src.excel_filter.main --config config.json
|
||||
```
|
||||
|
||||
## Regex Patterns
|
||||
|
||||
The tool uses Python's `re` module. Examples:
|
||||
|
||||
- `error|warning` - Match "error" or "warning"
|
||||
- `^A.*` - Lines starting with "A"
|
||||
- `\d{3}` - Three-digit numbers
|
||||
- `[A-Z].*` - Lines starting with capital letter
|
||||
|
||||
## Packaging & Distribution
|
||||
|
||||
### Build Executable
|
||||
|
||||
```bash
|
||||
pip install pyinstaller pandas openpyxl customtkinter
|
||||
python build_executable.py
|
||||
```
|
||||
|
||||
### Create Installer
|
||||
|
||||
```bash
|
||||
double-click build_installer.bat
|
||||
```
|
||||
|
||||
This creates `ExcelFilterSetup.exe` that:
|
||||
- Installs the application as a native Windows executable
|
||||
- Automatically installs Python and dependencies if needed
|
||||
- Creates desktop and Start menu shortcuts
|
||||
|
||||
## Technical Details
|
||||
|
||||
```
|
||||
|
||||
### Key Components
|
||||
|
||||
- **ExcelFilter Class**: Core filtering functionality
|
||||
- **CLI Interface**: Command line processing
|
||||
- **GUI Interface**: Graphical interface
|
||||
- **Configuration Management**: JSON-based settings
|
||||
|
||||
### Dependencies
|
||||
|
||||
- `openpyxl` - Excel file operations
|
||||
- `pandas` - Data manipulation
|
||||
- `customtkinter` - GUI interface
|
||||
|
||||
|
||||
## Examples
|
||||
|
||||
### Filter Log Files
|
||||
|
||||
```bash
|
||||
python -m src.excel_filter.main --input logs.xlsx --output errors.xlsx --pattern "error|warning"
|
||||
```
|
||||
|
||||
### Filter Customer Data
|
||||
|
||||
```bash
|
||||
python -m src.excel_filter.main --input customers.xlsx --output active_customers.xlsx --pattern "active" --columns Status
|
||||
```
|
||||
|
||||
### Filter Numeric Data
|
||||
|
||||
```bash
|
||||
python -m src.excel_filter.main --input sales.xlsx --output high_sales.xlsx --pattern "1000.*" --columns Amount
|
||||
```
|
||||
Reference in New Issue
Block a user