# wendelbarata/excel-classifier architecture

> Architecture diagram of the GitHub repository wendelbarata/excel-classifier, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/wendelbarata/excel-classifier
- Repository: https://github.com/wendelbarata/excel-classifier

## Overview

Excel Classifier is a PySide6 desktop app that splits `.xlsx` files into per-value workbooks. Users choose input and output folders and a column; the app offers columns common to the input workbooks, then writes filtered sheets into per-input-file output folders. The main window coordinates the workflow and displays status messages. The split and column-discovery functions are documented in the README and visible in `excel_manipulations.py`; no additional pipeline stages are inferred.

Main entry points: [`main.py`](https://github.com/wendelbarata/excel-classifier/blob/main/main.py) (Main window), [`excel_manipulations.py`](https://github.com/wendelbarata/excel-classifier/blob/main/excel_manipulations.py) (Common columns), [`UI_py/ExcelClassifier.py`](https://github.com/wendelbarata/excel-classifier/blob/main/UI_py/ExcelClassifier.py) (Window UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["Desktop interface"]
  node_main["Main window<br/>[main.py]"]
  node_ui["Window UI<br/>[ExcelClassifier.py]"]
end

subgraph group_processing["Excel processing"]
  node_columns["Common columns"]
  node_split["Split workbooks"]
  node_pandas["Pandas Excel I/O"]
end

subgraph group_files["Workbook files"]
  node_input["Input workbooks"]
  node_output["Output workbooks"]
end

node_user(("User"))

node_user -->|"select folders and column"| node_main
node_main -->|"sets up"| node_ui
node_main -->|"requests columns"| node_columns
node_columns -->|"reads workbooks"| node_input
node_columns -->|"reads sheets"| node_pandas
node_columns -->|"returns column names"| node_main
node_main -->|"starts split"| node_split
node_split -->|"reads workbooks"| node_input
node_split -->|"reads and writes sheets"| node_pandas
node_split -->|"writes split files"| node_output
node_split -->|"emits status"| node_main
node_columns -->|"emits errors"| node_main
node_main -->|"shows status"| node_user

click node_main "https://github.com/wendelbarata/excel-classifier/blob/main/main.py"
click node_ui "https://github.com/wendelbarata/excel-classifier/blob/main/UI_py/ExcelClassifier.py"
click node_columns "https://github.com/wendelbarata/excel-classifier/blob/main/excel_manipulations.py"
click node_split "https://github.com/wendelbarata/excel-classifier/blob/main/excel_manipulations.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_ui,node_user toneBlue
class node_columns,node_split,node_pandas toneAmber
class node_input,node_output toneMint
```

## Components

### Desktop interface

- [Main window](https://github.com/wendelbarata/excel-classifier/blob/main/main.py): `main.py`
- [Window UI](https://github.com/wendelbarata/excel-classifier/blob/main/UI_py/ExcelClassifier.py): `UI_py/ExcelClassifier.py`

### Excel processing

- [Common columns](https://github.com/wendelbarata/excel-classifier/blob/main/excel_manipulations.py): `excel_manipulations.py`
- [Split workbooks](https://github.com/wendelbarata/excel-classifier/blob/main/excel_manipulations.py): `excel_manipulations.py`
- **Pandas Excel I/O**

### Workbook files

- **Input workbooks**
- **Output workbooks**

### Other components

- **User**

## Connections

- User → Main window: select folders and column
- Main window → Window UI: sets up
- Main window → Common columns: requests columns
- Common columns → Input workbooks: reads workbooks
- Common columns → Pandas Excel I/O: reads sheets
- Common columns → Main window: returns column names
- Main window → Split workbooks: starts split
- Split workbooks → Input workbooks: reads workbooks
- Split workbooks → Pandas Excel I/O: reads and writes sheets
- Split workbooks → Output workbooks: writes split files
- Split workbooks → Main window: emits status
- Common columns → Main window: emits errors
- Main window → User: shows status
