Leadera — Экспорт диаграммы Ганта в Excel

📁 ~/Projects/docs-a2v/content/leadera/leadera-gantt-excel-export.md

Экспорт диаграммы Ганта в Excel

Дата: 09.04.2026 Статус: Требования Проект: Leadera


Общее описание

Пользователь нажимает кнопку экспорта в интерфейсе диаграммы Ганта. Система запрашивает диапазон дат выгрузки (по умолчанию — текущий видимый диапазон из интерфейса). После указания диапазона скачивается Excel-файл с визуальным представлением диаграммы Ганта.


Вводные данные

  • Источник: текущая диаграмма Ганта проекта (один проект = одна диаграмма)
  • Диапазон дат: пользователь указывает начальную и конечную дату. По умолчанию подставляется видимый в момент запроса диапазон из интерфейса
  • Масштаб таймлайна: берётся тот, который выбран пользователем в интерфейсе в момент запроса (не сохранённый в системе, а текущий). Варианты: по ячейкам или по дням

Структура Excel-файла

Шапка (первые строки)

  • Название диаграммы (название проекта)
  • Диапазон дат, в рамках которого сделана выгрузка

Лист — один

Вся диаграмма размещается на одном листе.

Секции

  • Секции отображаются как визуальная группировка строк (не отдельные листы)
  • Название секции — строка-заголовок над группой задач

Задачи

Каждая задача — отдельная строка. Данные задачи:

  • Название (текстовая колонка слева)
  • Дата начала (текстовая колонка слева)
  • Дата конца (текстовая колонка слева)
  • Цвет — ячейки таймлайна, соответствующие задаче, закрашены в цвет задачи

Таймлайн

  • Таймлайн представлен колонками дат в верхней части (горизонтальная ось времени)
  • Масштаб колонок соответствует выбранному пользователем в момент экспорта (по ячейкам / по дням)
  • Задачи отображаются как merged cells по соответствующим колонкам дат — визуальная полоса диаграммы Ганта

Вехи

  • Отображаются отдельной строкой (как задача, но с маркировкой вехи)
  • Позиционируются на соответствующей дате в таймлайне

Зависимости

  • Не отображаются (стрелочки/связи между задачами не нужны)

Пользовательский сценарий

  1. Пользователь открывает диаграмму Ганта проекта
  2. Настраивает масштаб таймлайна (по ячейкам / по дням)
  3. Нажимает кнопку «Экспорт в Excel»
  4. Система показывает диалог с выбором диапазона дат (предзаполнен текущим видимым диапазоном)
  5. Пользователь подтверждает / корректирует диапазон
  6. Система генерирует Excel-файл и инициирует скачивание

Технические требования

Backend (Go API)

  • Новый endpoint для генерации Excel (например, GET /api/v1/gantt/:projectId/export)
  • Query-параметры: dateFrom, dateTo, scale (cell|day)
  • Ответ: binary Excel-файл (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
  • Авторизация: обязательна (только участники проекта)
  • Библиотека для генерации Excel: excelize (Go)

Frontend (Angular)

  • Кнопка экспорта в тулбаре диаграммы Ганта
  • Модальное окно выбора диапазона дат с datepicker’ами
  • Предзаполнение диапазона из текущего видимого viewport’а
  • Скачивание файла через Blob / saveAs

Фильтрация данных

  • Выгружаются все задачи и вехи, которые:
    • Начинаются в диапазоне, ИЛИ
    • Заканчиваются в диапазоне, ИЛИ
    • Начинаются до диапазона и заканчиваются после (перекрывают целиком)
  • Секции включаются, если в них есть хотя бы одна попавшая задача

Открытые вопросы

(Нет)