# Правила агрегации Plant3D XLSX Обрабатываются только файлы `*.xlsx`, исключая временные `~$*.xlsx`, и только лист `Plant3D` без учёта регистра. Остальные листы не читаются. Заголовки обнаруживаются по именам столбцов, а не по заранее заданным номерам. Фактическая модель источника: `Плагин`, `Дата`, `Количество запусков`; поля `Файл`, `Пользователь`, `Номер проекта` не публикуются. `Пользователь` не используется как компьютер. `Дата` поддерживает Excel serial date, `dd.MM.yyyy`, `dd.MM.yyyy HH:mm`, `dd.MM.yyyy HH:mm:ss`, `yyyy-MM-dd`, `yyyy-MM-dd HH:mm:ss`, ISO-подобные и русские даты. Дата без времени допустима и нормализуется к `UsageDate`; время не выдумывается. `Количество запусков` разбирается как числовая мера. Принимаются целые числа, в том числе строковые числовые значения, ноль и кэшированное числовое значение формулы. Отрицательные, дробные, пустые, нечисловые и некэшированные значения отклоняются как `INVALID_LAUNCH_COUNT`. Итоговая мера — сумма `Количество запусков`, а не количество строк. Побайтово одинаковые книги группируются по SHA-256; канонический экземпляр анализируется один раз, копии фиксируются как `DUPLICATE_WORKBOOK`. Одинаковые строки внутри одной книги не удаляются автоматически: столбец `Файл` может представлять отдельное измерение исходного агрегата. `SourceId` обезличен (`source-0001.xlsx`) и назначается в стабильном порядке полного пути только внутри read-only анализа. Фактические имена файлов, пользователей, проектов и пути в результаты не записываются. Проверены `docProps/core.xml`, `docProps/custom.xml`, `docProps/app.xml`; явных свойств `ComputerName`, `MachineName`, `HostName` нет.