Технологии: openpyxl, python
Перед Вами проект, который обрабатывает Excel-файл, содержащий разичные технические данные, и преобразует его в файл JSON.
Порядок этапов:
- preprocessor.py
Предобработка Excel-файла (из директории excel_parser_project/data/raw/имя_файла): очистка ячеек с числовыми данными от лишнего текста (например, "600 op.h.") и сохранение копии Excel-файла в той же директории, но с окончанием _cleaned.xlsx.
- loader.py
Загрузка данных из excel-файла в список словарей.
- inspector.py
Оценка загруженной таблицы (списка словарей):
-
число строк в таблице,
-
заголовки таблицы (списком),
-
первые 10 строк таблицы (для оценки содержимого).
- cleaner.py
Общая очистка таблицы:
- удаляет лишние пробелы вначале и в конце строки,
- удаляет символы переноса строки '\n',
- удаляет символы неразрывного пробела '\xa0',
- заменяет {'', ' ', ' ', ' ', '-', '--', '---'} на None.
- converter.py
Преобразование типов данных:
- числовые поля - int,
- даты - строки, вида 'ДД.ММ.ГГГГ',
- строки - str,
- числовые поля с ведущими нулями сохраняются в виде строк '07', '12',
- колонку со смешанными данными (float и str) делим на две колонки.
- inspector.py
Визуальная проверка перобразованной таблицы.
- exporter.py
Экспорт очищенной и преобразованной таблицы (списка строк) в JSON (list[dict] - массив объектов, где каждая строка - отдельный объект):
[ {...}, {...}, ... {...} ]
Файл config.py содержит имена файлов и настройки путей - откуда взять файл для обработки и куда потом сохранить новый файл, с обработанной информацией. Такое размещение позволяет менять настройки в одном месте, что очень удобно.
- Клонируйте репозиторий и перейдите в него в командной строке:
git clone https://github.com/IrinaDemyanenko/excel_parser_openpyxl_only
cd excel_parser_openpyxl_only/
- Создайте виртуальное окружение и активируйте его:
python -m venv venv
venv/Scripts/activate
- Установите зависимости:
pip install -r requirements.txt
- Запустите скрипт для подготовки файла-excel. Выполнение скрипта создаст копию файла в директории excel_parser_openpyxl_only/data/raw/:
python prepare.py
-
Откройте копию файла в папке, сохраните изменения, закройте файл. Этот шаг необходим для расчёта формул внутри файла-excel и получения вычисленных значений формул.
-
Теперь можно запускать основной скрипт:
python main.py
- Итоговый .json-файл будет расположен в директории excel_parser_openpyxl_only/data/processed/json/.