Leadera — Экспорт диаграммы Ганта в Excel
📁
~/Projects/docs-a2v/content/leadera/leadera-gantt-excel-export.md
Экспорт диаграммы Ганта в Excel
Дата: 09.04.2026 Статус: Требования Проект: Leadera
Общее описание
Пользователь нажимает кнопку экспорта в интерфейсе диаграммы Ганта. Система запрашивает диапазон дат выгрузки (по умолчанию — текущий видимый диапазон из интерфейса). После указания диапазона скачивается Excel-файл с визуальным представлением диаграммы Ганта.
Вводные данные
- Источник: текущая диаграмма Ганта проекта (один проект = одна диаграмма)
- Диапазон дат: пользователь указывает начальную и конечную дату. По умолчанию подставляется видимый в момент запроса диапазон из интерфейса
- Масштаб таймлайна: берётся тот, который выбран пользователем в интерфейсе в момент запроса (не сохранённый в системе, а текущий). Варианты: по ячейкам или по дням
Структура Excel-файла
Шапка (первые строки)
- Название диаграммы (название проекта)
- Диапазон дат, в рамках которого сделана выгрузка
Лист — один
Вся диаграмма размещается на одном листе.
Секции
- Секции отображаются как визуальная группировка строк (не отдельные листы)
- Название секции — строка-заголовок над группой задач
Задачи
Каждая задача — отдельная строка. Данные задачи:
- Название (текстовая колонка слева)
- Дата начала (текстовая колонка слева)
- Дата конца (текстовая колонка слева)
- Цвет — ячейки таймлайна, соответствующие задаче, закрашены в цвет задачи
Таймлайн
- Таймлайн представлен колонками дат в верхней части (горизонтальная ось времени)
- Масштаб колонок соответствует выбранному пользователем в момент экспорта (по ячейкам / по дням)
- Задачи отображаются как merged cells по соответствующим колонкам дат — визуальная полоса диаграммы Ганта
Вехи
- Отображаются отдельной строкой (как задача, но с маркировкой вехи)
- Позиционируются на соответствующей дате в таймлайне
Зависимости
- Не отображаются (стрелочки/связи между задачами не нужны)
Пользовательский сценарий
- Пользователь открывает диаграмму Ганта проекта
- Настраивает масштаб таймлайна (по ячейкам / по дням)
- Нажимает кнопку «Экспорт в Excel»
- Система показывает диалог с выбором диапазона дат (предзаполнен текущим видимым диапазоном)
- Пользователь подтверждает / корректирует диапазон
- Система генерирует 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
Фильтрация данных
- Выгружаются все задачи и вехи, которые:
- Начинаются в диапазоне, ИЛИ
- Заканчиваются в диапазоне, ИЛИ
- Начинаются до диапазона и заканчиваются после (перекрывают целиком)
- Секции включаются, если в них есть хотя бы одна попавшая задача
Открытые вопросы
(Нет)