Files
Excel-project2/README.md
2026-02-23 13:33:46 +03:00

127 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Digitalization Project
Pet Проект предназначен для автоматической обработки Excel-отчетов из различных маркетплейсов (OZON, Yandex, WB), нормализации артикулов, расчета аналитических показателей и сохранения результатов с условным форматированием.
---
## 📁 Структура проекта
```
digitalization/
├─ handlers/
│ ├─ handler.py # Классы BaseHandler и Handler для работы с Excel
│ └─ s_daemon.py # Поиск файлов в директории input
├─ schema/
│ └─ pydantic.py # Классы Settings, JsonRead, Translit
├─ input/ # Папка для исходных файлов Excel
├─ output/ # Папка для сохранения обработанных файлов
├─ columns.json # JSON-файл с настройками колонок для каждого маркетплейса
├─ run.py # Основной скрипт запуска обработки
└─ .env # Файл с настройками проекта (пути и шаблон артикула)
```
---
## ⚙️ Установка
1. Клонировать репозиторий:
```bash
git clone <репозиторий>
cd digitalization
```
2. Создать виртуальное окружение:
```
python -m venv .venv
```
3. Установить зависимости:
```
pip install -r requirements
```
📝 Настройка
Создать .env файл в корне проекта:
```
INPUTDIR=./input
OUTPUTDIR=./output
PATTERN=[A-Z0-9]+
```
Создать columns.json с настройками колонок для каждого маркетплейса:
```
{
"ozon": {
"Артикул": 0,
"Наименование": 1,
"Выручка": 2,
"Прибыль": 3,
"Все_удержания_магазина": 4
},
"yandex": {
"Артикул": 0,
"Наименование": 1,
"Выручка": 2,
"Прибыль": 3
}
}
```
🚀 Запуск
```
python run.py или make run
```
После обработки файлы будут сохранены в папку output/ с условным форматированием:
• Колонки "Маржинальность" и "Прибыль" окрашиваются:
• Красный для отрицательных значений
• Зеленый для положительных значений
🛠️ Основные классы
```
BaseHandler
• Конструктор: __init__(file_path:str) — сохраняет путь к файлу
• Методы:
• struct() — возвращает структуру Excel (ExcelFile)
• read() — читает весь Excel в DataFrame
Handler(BaseHandler)
• get_articles_with_sales(columns: dict, sheet_name: str)
• Нормализация артикулов
• Группировка по артикулу
• Расчет дополнительных колонок:
• “Все удержания в %”
• “Всего заказано” и “Процент выкупа”
• “Маржинальность”
• Сортировка по колонке "Прибыль"
• Условное форматирование Excel (цвета)
Settings и JsonRead
• Settings — хранит конфигурацию проекта из .env
• JsonRead — загружает соответствие колонок для каждого маркетплейса из columns.json
• Translit — словарь для транслитерации кириллицы в латиницу
```
⚠️ Зависимости
• Python ≥ 3.10
• pandas
• openpyxl
• pydantic, pydantic-settings
• jinja2
🔧 Примечания
• Файлы Excel должны иметь корректное название (ozon, yandex, wb)
• Папки input и output создаются автоматически
• Поддерживаются только Excel-файлы (.xlsx)
“””
---