Files
docs.a2v.space/content/yasha/leadera/leadera-gantt-excel-export.md
T
Агальцов Антон dd67d2c2ec Реструктуризация: два глобальных раздела — Яша и Семен
Весь контент перенесён в content/yasha/ (7 подразделов).
Создан content/semen/ с подразделами: changelog, kb, diary.
Навигация — dropdown в навбаре, двухуровневое меню в hugo.toml.
Шаблоны, сайдбар, поиск обновлены под вложенные секции.
2026-04-26 19:44:52 +03:00

104 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Leadera — Экспорт диаграммы Ганта в Excel"
date: 2026-04-09
lastmod: 2026-04-09
tags: ["leadera", "gantt", "excel", "export"]
weight: 120
---
# Экспорт диаграммы Ганта в 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`
### Фильтрация данных
- Выгружаются все задачи и вехи, которые:
- Начинаются в диапазоне, ИЛИ
- Заканчиваются в диапазоне, ИЛИ
- Начинаются до диапазона и заканчиваются после (перекрывают целиком)
- Секции включаются, если в них есть хотя бы одна попавшая задача
---
## Открытые вопросы
_(Нет)_