Files
ImportMapper/README.md
T
prog1764 7886edc0af feat: ImportMapper — универсальный редактор импорта из Excel-опросников
- Профили: 152-ФЗ, 187-ФЗ, 117-ФЗ, МУ, КЗИ, ПЗИ
- Сканирование Excel: что импортируется и куда
- Галочки: включить/выключить поля, добавить свои привязки
- Сохранение настроек по типу опросника
- Выгрузка данных в JSON (export/export_<тип>.json)
- Тесты: отключение полей, пользовательские привязки, секции, ИС
2026-08-03 09:19:16 +04:00

71 lines
3.7 KiB
Markdown

# ImportMapper
Универсальный редактор импорта из Excel-опросников.
Показывает, какие данные из файла опросника импортируются и куда,
позволяет включить/выключить поля и добавить свои привязки.
Поддерживаемые типы опросников (профили в `profiles/`):
- `152` — 152-ФЗ «О персональных данных»
- `187` — 187-ФЗ «О безопасности КИИ»
- `117` — 117-ФЗ (безопасность объектов КИИ / ГИС)
- `mu` — МУ (методические указания)
- `kzi` — КЗИ (комплекс средств защиты информации)
- `pzi` — ПЗИ (программные средства защиты информации)
## Запуск
```bash
pip install -r requirements.txt
python3 main.py
```
## Как пользоваться
1. Выберите тип опросника в выпадающем списке.
2. Нажмите «Обзор» и укажите Excel-файл опросника.
3. Нажмите «Сканировать» — программа покажет, что импортируется.
4. Галочками включите/выключите нужные поля.
5. «💾 Сохранить настройки» — сохраняет настройки для этого типа опросника.
6. «📤 Выгрузить данные» — собирает данные из Excel в JSON по настройкам
(файл `export/export_<тип>.json`), который может использовать генератор.
## Структура
- `main.py` — точка входа
- `editor.py` — окно редактора
- `core.py` — профили, сканирование Excel, извлечение данных
- `profiles/*.json` — правила импорта для каждого типа опросника
- `settings/settings_<тип>.json` — настройки пользователя (создаются автоматически)
- `export/export_<тип>.json` — выгруженные данные (создаются автоматически)
## Профили
Каждый профиль — JSON-файл:
```json
{
"id": "152",
"name": "152-ФЗ (персональные данные)",
"common_sheet": "общие",
"employee_sheet": "сотруд",
"is_enabled": true,
"rules": [
{"pattern": "полное наименование организации", "field": "fullName", "desc": "Полное наименование организации"}
],
"sections": {
"commission": {"header": "состав комиссии"}
}
}
```
- `common_sheet` — лист с общими сведениями (подстрока имени листа)
- `employee_sheet` — лист с комиссией/сотрудниками (подстрока имени листа)
- `is_enabled` — включать ли разбор остальных листов как информационных систем
- `rules` — правила: регулярное выражение заголовка → поле программы
- `sections` — секции на листе сотрудников (заголовок секции → id)
Правила для 187/117/МУ/КЗИ/ПЗИ — базовые; их можно дополнить под конкретные
опросники через редактор (галочка «Найдено, но не импортируется») или
отредактировав JSON профиля.