XLSX‑файл — это архив ZIP, содержащий набор XML‑файлов, описывающих лист, стили, свойства книги и т.д. Помимо видимых данных в ячейках, в таком архиве могут оставаться сведения, которые не отображаются на листе, но могут быть доступны другим пользователям или программам. Ниже перечислены самые распространённые виды скрытой информации и способы их проверки.
Основные виды скрытых данных в XLSX
- Скрытые листы (worksheet) – лист можно скрыть через контекстное меню, но он остаётся в книге и доступен через VBA или диалог «Управление листами».
- Скрытые строки и столбцы – строки/столбцы могут быть заданы высотой/шириной ноль или помечены как скрытые.
- Комментарии и примечания – они привязаны к ячейкам, но могут быть спрятаны, если параметр показа комментариев выключен.
- Пользовательские свойства документа (custom document properties) – пары «ключ‑значение», хранящиеся в файле core.xml или custom.xml.
- Определённые имена (named ranges) – могут ссылаться на диапазоны, constants или формулы, не обязательно видимые на листе.
- Внешние ссылки и соединения – ссылки на другие книги, серверы или потоки данных, хранящиеся в части xl/externallinks.
- Кеш сводных таблиц и кэш данных – копии исходных данных, оставшиеся после удаления исходного листа.
- Встроенные объекты (например, изображения, диаграммы) с свойством «Не печатать» или «Скрыть».
- VBA‑проект и модули – в файлах с расширением .xlsm или .xlsb; в чистом .xlsx VBA не сохраняется, но могут присутствовать активные элементы управления.
- Метаданные автора и последнего сохранителя – информация из свойств документа (author, last modified by, компания и т.д.).
Как проверить скрытые данные с помощью встроенных средств Excel
- Откройте файл в Excel.
- Перейдите на вкладку Файл → Сведения → Проверка документа (Inspect Document).
- Нажмите Проверить. В появившемся окне отметьте типы данных, которые хотите inspected: комментарии и примечания, скрытые листы, пользовательские свойства, заголовки и колонтитулы, пользовательские XML‑данные и т.д.
- После завершения проверки Excel покажет, что найдено, и предложит удалить обнаруженные элементы.
- Для просмотра скрытых листов: щёлкните правой кнопкой по любой вкладке листа → Управление листами. В диалоговом окне будут перечислены все листы, включая скрытые (отмечены как скрытые).
- Чтобы увидеть скрытые строки/столбцы, выделите весь лист (Ctrl+A) и посмотрите на номера строк и буквы столбцов – скрытые будут иметь двойную линию или отсутствовать в заголовке.
- Для пользовательских свойств: Файл → Сведения → Свойства → Дополнительные свойства → вкладка Пользовательские. Здесь отображаются все пары ключ‑значение.
- Определённые имена можно посмотреть через Формулы → Диспетчер имён.
- Внешние ссылки и соединения находятся в Данные → Запросы и подключения.
- Если файл поддерживает макросы (.xlsm), откройте редактор VBA клавишами Alt+F11 и проверьте модули, формы и классы на наличие кода.
Проверка структуры файла вручную (по желанию)
Поскольку XLSX — это ZIP‑архив, вы можете распаковать его и посмотреть содержимое XML‑файлов. Это полезно, если нужно убедиться, что определённые элементы действительно отсутствуют после очистки.
- Сделайте копию файла и измените её расширение на .zip (или просто используйте любой архиватор, поддерживающий ZIP).
- Распакуйте архив во временную папку.
- Основные части, которые стоит inspect:
- xl/workbook.xml – здесь перечислены все листы; атрибут state=»hidden» указывает на скрытый лист.
- xl/worksheets/sheet*.xml – в каждом листе можно увидеть скрытые строки/столбцы через атрибуты hidden в тегах row и col.
- docProps/core.xml и docProps/custom.xml – содержат свойства документа (автор, компания, пользовательские свойства).
- xl/printerSettings/printerSettings*.bin – могут хранить пользовательские настройки печати.
- xl/comments/comments*.xml – комментарии к ячейкам.
- xl/externalLinks/externalLink*.xml – внешние ссылки.
- xl/pivotTables/pivotTable*.xml – кэш сводных таблиц.
- После анализа удалите ненужные файлы, запакуйте папку обратно в ZIP и переименуйте в .xlsx.
Ограничения и моменты, на которые стоит обратить внимание
- Проверка документа в Excel не находит все возможные метаданные (например, некоторые пользовательские XML‑части, встроенные активные элементы управления или цифровые подписи). Для глубокого анализа могут понадобиться специализированные инструменты.
- Если файл защищён паролем на открытие или изменение, некоторые способы проверки могут быть недоступны без ввода пароля.
- При распаковке и повторной упаковке файла важно сохранить структуру и не повредить XML‑файлы, иначе файл может стать непрочитаемым.
- Некоторые скрытые элементы (например, очень большие кэш‑данные pivot tables) могут значительно увеличивать размер файла, но не влиять на видимые данные.
- При работе с корпоративными шаблонами проверяйте также наличие пользовательских XML‑частей, которые могут использоваться для хранения настроек или метаданных, не попадающих в стандартную проверку.
Практический чек‑лист перед передачей файла
- Откройте файл и выполните Проверка документа, отметив все доступные типы.
- Убедитесь, что нет скрытых листов (через Управление листами).
- Проверьте отсутствие скрытых строк/столбцов (выделите весь лист).
- Осмотрите пользовательские свойства документа.
- Просмотрите определённые имена и удалите ненужные.
- Проверьте внешние ссылки и соединения; при необходимости разорвите их.
- Если файл поддерживает макросы, проверьте VBA‑проект на наличие нежелательного кода.
- При необходимости выполните резервное копирование, распакуйте файл и проверьте XML‑части на наличие скрытых данных.
- Сохраните файл под новым именем или перезапишите оригинал только после подтверждения, что все лишние данные удалены.
Следуя этим шагам, вы сможете выявить и удалить большинство типов скрытой информации, которая может оставаться в XLSX‑файлах, и thereby снизить риск unintended раскрытия конфиденциальных данных или увеличения размера файла.
