Skip to content

mirslava88/excel-equipment-processing

Repository files navigation

📊 Множественная обработка Excel файлов

Веб-приложение для сверки оборудования и анализа устаревшего оборудования на основе Excel файлов.

🚀 Возможности

  • База данных — загрузка файла склада для сверки
  • Множественная обработка — неограниченное количество файлов
  • Автоопределение столбцов — по ключевым словам (серийный номер, дата)
  • Сверка с базой данных — проверка наличия на складе (лист "Возврат")
  • Анализ устаревания — оборудование старше 5 лет
  • Градация:
    • 6-9 лет → "Да, X лет"
    • 9 лет → "Критично, X лет"

  • Скачивание результатов — отдельные файлы или ZIP-архив

🛠️ Технологии

  • Backend: FastAPI, Python 3.14
  • Excel processing: Pandas, python-calamine, openpyxl, pyxlsb
  • Frontend: Vanilla JS, современный CSS
  • Поддержка форматов: .xlsx, .xlsb, strict OOXML

📦 Установка

# Создать виртуальное окружение
python3 -m venv .venv
source .venv/bin/activate  # macOS/Linux

# Установить зависимости
pip install -r requirements.txt

# Запустить сервер
./start.sh

Приложение будет доступно по адресу: http://127.0.0.1:8001/

📖 Использование

Шаг 1: Загрузка файлов

  1. Загрузите базу данных (файл склада с листом "Возврат")
  2. Добавьте файлы для обработки (кнопка "+")
  3. Нажмите "Загрузить все файлы"

Шаг 2: Настройка

  • Выберите листы для каждого файла
  • Столбцы определяются автоматически
  • Выберите операции:
    • ☑ Сверка с базой данных
    • ☑ Анализ устаревшего оборудования

Шаг 3: Результаты

  • Скачайте отдельные файлы
  • Или скачайте все в ZIP-архиве

📊 Результаты обработки

Каждый файл получает два новых столбца:

1. "Передано на склад"

  • Да — серийный номер найден на листе "Возврат" базы данных
  • Нет — серийный номер не найден

2. "Оборудование устарело"

  • Нет — оборудование ≤ 5 лет
  • Да, 6 лет — устарело (6-9 лет)
  • Критично, 11 лет — критически устарело (> 9 лет)
  • Не найдено в базе данных — невалидная дата

🔧 Особенности

  • Strict OOXML поддержка — работает с проблемными Excel файлами
  • Низкоуровневое чтение — ZIP/XML парсинг для сложных файлов
  • Множественные fallback — 7 методов чтения листов
  • Calamine engine — быстрое чтение (в 20 раз быстрее openpyxl)

📝 Структура проекта

myapps/
├── app/
│   ├── main.py          # FastAPI приложение
│   ├── excel_logic.py   # Логика обработки Excel
│   └── __init__.py
├── requirements.txt     # Зависимости
├── start.sh            # Скрипт запуска
├── README.md           # Документация
└── Промт-задача.md     # Спецификация задачи

📄 Лицензия

MIT

About

Web-приложение для обработки Excel файлов с оборудованием

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors