Что такое формат файла XLSM?
.xlsm - это широко используемый документ электронной таблицы, созданный в Excel 2007 или более поздних версиях. Файлы .xlsm хранят данные в ячейках, организованных в строки и столбцы. Формат основан на стандарте Office Open XML и использует сжатие ZIP, что делает его структурно похожим на файл .xlsx.
.xlsm и .xlsx - почти идентичные форматы таблиц, с той лишь разницей, что .xlsm содержит макросы, написанные на Visual Basic for Applications (VBA). Макрос - это определенная пользователем функция, которую можно использовать для автоматизации повторяющихся задач, манипулирования данными или управления другими приложениями Office. Макросы по умолчанию отключены в Excel из соображений безопасности, так как они могут использоваться для доставки вредоносного кода. Чтобы использовать макросы, документ таблицы должен быть сохранен как файл .xlsm; сохранение в формате .xlsx незаметно удаляет проект VBA.
Внутри проект VBA хранится как бинарная часть xl/vbaProject.bin внутри ZIP-пакета. Файл [Content_Types].xml пакета объявляет тип содержимого macroEnabled.12, что и отличает .xlsm от .xlsx на уровне формата - оба имеют одинаковые магические байты PK. Родственным форматом является .xltm, вариант шаблона Excel с поддержкой макросов, а .xlsb - это двоичный эквивалент, который также поддерживает макросы.
Безопасность и защита
РИСК: HIGHXLSM - это член семейства Excel с высоким уровнем риска именно потому, что он МОЖЕТ запускать код: его макросы VBA являются классическим вектором вредоносного ПО. Сценарий атаки - это присланный по почте .xlsm, который вынуждает вас нажать «Включить содержимое/макросы», после чего VBA загружает или выполняет вредоносную нагрузку. Защита: Microsoft блокирует макросы по умолчанию в файлах, полученных из интернета (Mark of the Web), и открывает ненадежные файлы в режиме защищенного просмотра - оставьте оба параметра включенными. Включайте макросы только в файлах, которые вы специально ожидаете от доверенного отправителя. Если вам нужны только данные, а не автоматизация, откройте файл в Google Таблицах / Excel для веба (которые не запускают VBA) или сохраните его как .xlsx, чтобы удалить код. Относитесь к любому незапрошенному требованию «включить макросы» как к враждебному.
Детали формата
в двух словахПрограммы, открывающие файлы XLSM
Технические подробности
глубокая спецификация| MIME-тип | application/vnd.ms-excel.sheet.macroEnabled.12 |
| Формат контейнера | Пакет Office Open XML (OPC) на базе ZIP |
| Магические байты | 50 4B 03 04 («PK» - заголовок локального файла ZIP со смещением 0; побайтово идентичен .xlsx, отличается только внутренним содержимым) |
| Часть проекта VBA | xl/vbaProject.bin - Compound File Binary (CFB), встроенный в ZIP-пакет |
| Язык макросов | Visual Basic for Applications (VBA) |
| Идентификатор типа контента | macroEnabled.12, объявленный в [Content_Types].xml; это то, что формально отличает .xlsm от .xlsx |
| Безопасность макросов по умолчанию | Макросы блокируются при открытии; выполнение требует подтверждения пользователя через запрос или настроенное надежное расположение |
| Подпись кода VBA | Проект VBA может быть подписан сертификатом подписи кода для установления доверия к издателю и подавления запросов |
| Шифрование | Парольное шифрование AES-256 через защиту Office Open XML (доступно начиная с Excel 2013) |
| Максимальный размер листа | 1 048 576 строк × 16 384 столбца на лист |
| Аналог шаблона | .xltm - формат шаблона книги с поддержкой макросов; та же внутренняя структура, другая роль расширения |
| Правило принудительного расширения | Excel отказывается сохранять книгу, содержащую VBA, как .xlsx; пользователю предлагается сохранить ее как .xlsm |
| Ограничения веб- и мобильных версий | Макросы VBA не выполняются в Excel для веба или Excel для мобильных устройств; содержимое макросов сохраняется, но остается неактивным |
| Поддержка VBA сторонними разработчиками | LibreOffice Calc открывает .xlsm с частичной совместимостью с VBA; сложные макросы или вызовы объектной модели Excel могут вести себя иначе |
| Выпущен | 2007 (Excel 2007); the macro-enabled variant of the ECMA-376 / ISO-IEC 29500 format |
| Открыть стандартное | Да · без роялти |
| Спецификация | learn.microsoft.com |
Конвертации XLSM
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах XLSM.