Skip to content

mikhalchankasm/StartReport

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

СТАРТ Report Builder

Автоматический генератор отчетов для переноса таблиц из расчетной программы СТАРТ в шаблон Word документа.

Описание

Программа автоматически извлекает таблицы из отчета расчетной программы СТАРТ и вставляет их в подготовленный шаблон Word документа с сохранением форматирования.

Возможности

  • ✅ Извлечение ВСЕХ таблиц из Word документа (включая вложенные в shapes/textboxes)
  • ✅ Автоматическая идентификация таблиц по структуре и содержимому
  • ✅ Вставка таблиц в шаблон на предпоследний лист
  • ✅ Анализ и превью таблиц перед генерацией
  • ✅ Сохранение путей к файлам между запусками
  • ✅ Упрощенный GUI интерфейс

Требования

  • Python 3.7+
  • Windows (протестировано на Windows 10)

Установка

  1. Клонируйте репозиторий:
git clone https://github.com/mikhalchankasm/StartReport.git
cd StartReport
  1. Установите зависимости:
pip install -r requirements.txt

Запуск

Через Python

python src/docx_analyzer_gui.py

Через bat-файл (Windows)

Дважды кликните на start_report.bat

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

Первый запуск

  1. Запустите программу docx_analyzer_gui.py или через bat файл
  2. В секции "Генератор отчетов СТАРТ" выберите файлы:
    • Исходный - отчет из расчетной программы СТАРТ
    • Шаблон - документ-шаблон для заполнения
    • Выходной файл - имя результирующего файла
  3. (Опционально) Нажмите "Анализ таблиц" для проверки
  4. Нажмите "Генерировать отчет"

Последующие запуски

Программа автоматически сохраняет пути к файлам!

  1. Запустите программу - все пути уже заполнены
  2. При необходимости измените исходный документ или выходной файл
  3. Нажмите "Генерировать отчет"

Конфигурация сохраняется в файл 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
  • Обрабатывает объединенные ячейки

Вставка в шаблон

Таблицы вставляются:

  1. На предпоследний лист документа-шаблона
  2. После всех существующих параграфов
  3. В порядке: "Общие данные" → "Температурная история"

Решение проблем

Таблица не идентифицируется

Используйте кнопку "Анализ таблиц" чтобы увидеть структуру всех таблиц.

Проверьте соответствие критериям:

  • Количество колонок
  • Ключевые слова в заголовках

Ошибка при вставке

Убедитесь, что:

  • Шаблон не поврежден
  • Шаблон содержит минимум 2 секции (листа)
  • Файл шаблона не открыт в другой программе

Разработка

См. ПЛАН_РАЗРАБОТКИ.md для полного технического задания и планов развития проекта.

Дальнейшее развитие

  • JSON конфигурация для сохранения настроек
  • Копирование форматирования из исходника
  • Поддержка дополнительных типов таблиц
  • Экспорт в Excel
  • Пакетная обработка

Лицензия

MIT License

Автор

mikhalchankasm

Вклад в проект

См. CONTRIBUTING.md для информации о том, как внести вклад в развитие проекта.

Ссылки

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors