Автоматический генератор отчетов для переноса таблиц из расчетной программы СТАРТ в шаблон Word документа.
Программа автоматически извлекает таблицы из отчета расчетной программы СТАРТ и вставляет их в подготовленный шаблон Word документа с сохранением форматирования.
- ✅ Извлечение ВСЕХ таблиц из Word документа (включая вложенные в shapes/textboxes)
- ✅ Автоматическая идентификация таблиц по структуре и содержимому
- ✅ Вставка таблиц в шаблон на предпоследний лист
- ✅ Анализ и превью таблиц перед генерацией
- ✅ Сохранение путей к файлам между запусками
- ✅ Упрощенный GUI интерфейс
- Python 3.7+
- Windows (протестировано на Windows 10)
- Клонируйте репозиторий:
git clone https://github.com/mikhalchankasm/StartReport.git
cd StartReport- Установите зависимости:
pip install -r requirements.txtpython src/docx_analyzer_gui.pyДважды кликните на start_report.bat
- Запустите программу
docx_analyzer_gui.pyили через bat файл - В секции "Генератор отчетов СТАРТ" выберите файлы:
- Исходный - отчет из расчетной программы СТАРТ
- Шаблон - документ-шаблон для заполнения
- Выходной файл - имя результирующего файла
- (Опционально) Нажмите "Анализ таблиц" для проверки
- Нажмите "Генерировать отчет"
Программа автоматически сохраняет пути к файлам!
- Запустите программу - все пути уже заполнены
- При необходимости измените исходный документ или выходной файл
- Нажмите "Генерировать отчет"
Конфигурация сохраняется в файл report_generator_config.json
- Признаки: 2 колонки
- Ключевые слова в 1-й колонке: "Версия", "Дата", "Объект", "Нормативный документ"
- Признаки: 3 столбца
- Заголовки: "Темп. коэф.", "Частота", "Период"
StartReport/
├── src/ # Исходный код
│ ├── docx_analyzer_gui.py # Главное приложение с GUI
│ ├── report_generator.py # Модуль генерации отчетов
│ ├── table_identifier.py # Идентификация таблиц
│ └── template_processor.py # Работа с шаблоном
├── examples/ # Примеры использования
│ ├── README.md # Описание примеров
│ ├── docx_analysis.ipynb # Notebook с анализом
│ ├── Пример 1/ # Полный комплект документов
│ ├── Пример 2/ # Упрощенный пример
│ └── Пример 3/ # Дополнительные примеры
├── docs/ # Документация
│ ├── DEVELOPMENT.md # План разработки
│ └── Отчёт из СТАРТ.md # Пример отчета
├── requirements.txt # Зависимости Python
├── start_report.bat # Запуск на Windows
├── LICENSE # Лицензия MIT
├── .gitignore # Git ignore
└── README.md # Этот файл
Используется прямой XML парсинг через zipfile + xml.etree.ElementTree:
- Извлекает ВСЕ таблицы, включая вложенные
- Не зависит от ограничений библиотеки python-docx
- Обрабатывает объединенные ячейки
Таблицы вставляются:
- На предпоследний лист документа-шаблона
- После всех существующих параграфов
- В порядке: "Общие данные" → "Температурная история"
Используйте кнопку "Анализ таблиц" чтобы увидеть структуру всех таблиц.
Проверьте соответствие критериям:
- Количество колонок
- Ключевые слова в заголовках
Убедитесь, что:
- Шаблон не поврежден
- Шаблон содержит минимум 2 секции (листа)
- Файл шаблона не открыт в другой программе
См. ПЛАН_РАЗРАБОТКИ.md для полного технического задания и планов развития проекта.
- JSON конфигурация для сохранения настроек
- Копирование форматирования из исходника
- Поддержка дополнительных типов таблиц
- Экспорт в Excel
- Пакетная обработка
MIT License
См. CONTRIBUTING.md для информации о том, как внести вклад в развитие проекта.