- Профили: 152-ФЗ, 187-ФЗ, 117-ФЗ, МУ, КЗИ, ПЗИ - Сканирование Excel: что импортируется и куда - Галочки: включить/выключить поля, добавить свои привязки - Сохранение настроек по типу опросника - Выгрузка данных в JSON (export/export_<тип>.json) - Тесты: отключение полей, пользовательские привязки, секции, ИС
71 lines
3.7 KiB
Markdown
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 профиля.
|