Как сохранить файл Excel в формате XML: 5 рабочих способов

Функция сохранения Excel-документа в XML доступна не во всех версиях программы, а её реализация зависит от структуры исходной таблицы и целей экспорта. Если при попытке выбрать формат .xml в меню «Сохранить как» соответствующий пункт отсутствует, проблема кроется либо в настройках файла, либо в версии Microsoft Office. В 2019–2026 годах алгоритм экспорта изменился: теперь для корректного преобразования требуется предварительная подготовка данных — удаление объединённых ячеек, проверка именованных диапазонов и выбор правильной кодировки.

Стандартный путь через Файл → Сохранить как → Обзор работает только для таблиц с простой структурой. Если ваш файл содержит сложные формулы, сводные таблицы или макросы, прямой экспорт в XML приведёт к потере данных или искажению структуры. В таких случаях потребуется использовать Power Query, надстройку Developer Tools или сторонние конвертеры. Далее разберём все актуальные методы с учётом особенностей Excel 365, Excel 2021 и Excel 2019.

Некоторые пользователи сталкиваются с ошибкой "Невозможно сохранить в XML из-за недопустимых символов". Она возникает, если в ячейках содержатся специальные символы (например, &, <, >), которые конфликтуют со стандартом XML 1.0. Решение — предварительная очистка данных с помощью функции ЧИСТ() или замена символов вручную. Также проверьте, не превышает ли длина текста в ячейках лимит в 32 767 символов, установленный для XML-экспорта в Excel.

1. Стандартный экспорт через «Сохранить как»

Самый простой способ — использовать встроенную функцию сохранения. Он подходит для таблиц без сложного форматирования и работает в Excel 2010–2026. Алгоритм действий:

  1. Откройте файл Excel и перейдите в меню Файл → Сохранить как.
  2. Выберите папку для сохранения и в выпадающем списке Тип файла найдите вариант XML-данные (*.xml).
  3. Нажмите Сохранить. Если появится предупреждение о несовместимости функций, подтвердите экспорт.

⚠️ Ограничения метода:

  • 🚫 Не сохраняются формулы — только итоговые значения.
  • 🚫 Объединённые ячейки преобразуются в первую ячейку диапазона, остальные становятся пустыми.
  • 🚫 Цвет фона и шрифты игнорируются.

Если пункт XML-данные отсутствует в списке, значит ваша версия Excel не поддерживает прямой экспорт. В этом случае используйте альтернативные методы, описанные ниже. Также проверьте, не открыт ли файл в режиме Защищённого просмотра — в нём функция сохранения в XML блокируется.

Что делать, если XML-данные не отображаются в списке форматов?

В Excel 2016 и новее пункт может скрываться за опцией Другие форматы. Если его нет даже там, значит в настройках отключена поддержка XML. Чтобы включить её, перейдите в Файл → Параметры → Дополнительно и установите флажок Сохранять данные в формате XML (если такой параметр доступен).

2. Экспорт через Power Query (для сложных таблиц)

Power Query — это инструмент для трансформации данных, который позволяет экспортировать таблицы в XML с сохранением структуры. Метод подходит для файлов с:

  • 📊 Сводными таблицами;
  • 🔗 Внешними связями;
  • 📈 Большим количеством формул.

Инструкция:

  1. Выделите диапазон данных, который нужно экспортировать.
  2. Перейдите на вкладку Данные и выберите Из таблицы/диапазона (в группе Получить и преобразовать).
  3. В открывшемся окне Power Query нажмите Файл → Экспортировать → Экспортировать в XML.
  4. Укажите путь для сохранения и подтвердите действие.

Преимущество этого метода — возможность предварительной обработки данных: удаление дубликатов, замена значений, фильтрация. Однако Power Query не сохраняет форматирование ячеек, поэтому если вам важно сохранить цвета или шрифты, используйте макросы (см. раздел 4).

📊 Какой метод экспорта в XML вы используете чаще?
Стандартное "Сохранить как"
Power Query
Надстройка Developer
Сторонние конвертеры

3. Сохранение XML-схемы (XSD) для структурированных данных

Если ваша таблица связана с внешней XML-схемой (файл .xsd), Excel позволяет сохранить данные с привязкой к этой схеме. Это актуально для корпоративных пользователей, работающих с стандартными форматами отчётности (например, , ROSSTAT).

Порядок действий:

  1. Откройте файл Excel и перейдите на вкладку Разработчик (если её нет, включите в Файл → Параметры → Настройка ленты).
  2. Нажмите Импорт в группе XML и выберите файл схемы .xsd.
  3. После привязки схемы к данным выберите Экспорт в той же группе.
⚠️ Внимание: Если структура таблицы не соответствует схеме (например, отсутствуют обязательные поля), экспорт завершится ошибкой. Перед сохранением проверьте соответствие столбцов требованиям XSD с помощью команды XML → Источник.
Формат Сохраняет формулы Сохраняет форматирование Поддерживает сводные таблицы
XML-данные (*.xml) ❌ Нет ❌ Нет ❌ Нет
Power Query → XML ❌ Нет ❌ Нет ✅ Да
XML через Разработчик (с XSD) ✅ Да* ❌ Нет ✅ Да
Макрос VBA ✅ Да ✅ Частично ✅ Да

* Формулы сохраняются только если они поддерживаются XML-схемой.

4. Автоматизация через VBA-макрос

Для пользователей, которым требуется регулярный экспорт данных в XML с сохранением максимального количества параметров, оптимальное решение — написать макрос на VBA. Ниже приведён пример кода, который экспортирует активный лист в XML с учётом структуры таблицы:

Sub ExportToXML()

Dim xmlPath As String

Dim ws As Worksheet

Set ws = ActiveSheet

xmlPath = Application.GetSaveAsFilename( _

InitialFileName:="Export", _

FileFilter:="XML Files (.xml), .xml", _

Title:="Сохранить как XML")

If xmlPath <> "False" Then

ws.Copy

ActiveWorkbook.SaveAs xmlPath, xlXMLSpreadsheet

ActiveWorkbook.Close False

End If

End Sub

Чтобы использовать этот макрос:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в модуль (Insert → Module).
  3. Закройте редактор и запустите макрос через Разработчик → Макросы.

⚠️ Важно: Макрос сохраняет данные в формате xlXMLSpreadsheet, который поддерживает больше элементов, чем стандартный экспорт. Однако он не работает с файлами, защищёнными паролем, и может выдавать ошибку при наличии в ячейках символов &, < или >.

🔹 Удалите объединённые ячейки (Главная → Объединить и поместить в центре)

🔹 Замените специальные символы (&, <, >) на их HTML-эквиваленты (&, <, >)

🔹 Проверьте имена листов — они не должны содержать пробелов или знаков препинания

🔹 Отключите защиту листа и книги-->

5. Использование сторонних конвертеров

Если встроенные инструменты Excel не подходят (например, из-за ограничений на размер файла или сложную структуру), воспользуйтесь специализированными программами:

  • 🔧 Excel to XML Converter (от Altova) — поддерживает XSD-валидацию;
  • 🔧 Oxygen XML Editor — для работы с крупными файлами (более 100 МБ);
  • 🔧 Online-Convert — бесплатный веб-сервис для разовых задач.

При выборе конвертера обращайте внимание на:

  • 📌 Поддержку вашей версии Excel (некоторые программы работают только с Excel 2013–2019);
  • 📌 Возможность настройки кодировки (рекомендуется UTF-8);
  • 📌 Сохранение иерархии данных (важно для вложенных таблиц).
⚠️ Внимание: Бесплатные онлайн-конвертеры могут ограничивать размер файла (обычно до 50 МБ) и не гарантируют конфиденциальность данных. Для работы с конфиденциальной информацией используйте офлайн-программы.

6. Решение распространённых ошибок

При экспорте Excel в XML пользователи часто сталкиваются с следующими проблемами:

Ошибка Причина Решение
"Невозможно сохранить из-за недопустимых символов" В ячейках содержатся &, <, > Замените символы на &, <, > или используйте ЧИСТ()
"Файл слишком большой для формата XML" Превышен лимит в 10 МБ для стандартного экспорта Разбейте файл на несколько частей или используйте Power Query
"Недопустимое имя листа" Имя листа содержит пробелы или символы ?:*| Переименуйте лист, используя только буквы и цифры

Если при открытии полученного XML-файла в браузере или текстовом редакторе отображается ошибка парсинга, проверьте:

  1. Корректность закрывающих тегов (каждый <Row> должен иметь </Row>);
  2. Отсутствие пустых атрибутов (например, ss:StyleID="");
  3. Соответствие кодировки (откройте файл в Notepad++ и выберите UTF-8 без BOM).

7. Оптимизация XML-файла для дальнейшего использования

Экспортированный XML-файл часто требует доработки перед использованием в других системах. Основные рекомендации:

  • 📖 Удаление лишних тегов: Excel добавляет служебные теги вроде <?xml-mso-application>. Их можно удалить вручную или через XSLT-преобразование.
  • 📖 Сжатие данных: Для крупных файлов используйте архивацию (например, .zip) или конвертацию в Binary XML.
  • 📖 Валидация: Проверьте файл на соответствие схеме с помощью xmllint (утилита для Linux/macOS) или онлайн-валидаторов.

Если XML нужен для импорта в , SAP или другую бухгалтерскую программу, уточните требования к структуре у разработчика ПО. Например, 1С:Предприятие требует, чтобы числовые значения были в формате <Число>1000.00</Число>, а не <Cell><Data>1000</Data></Cell>, как экспортирует Excel.

Пример XSLT для преобразования XML из Excel в упрощённый формат

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<Root>

<xsl:for-each select="//Row">

<Record>

<xsl:for-each select="Cell">

<Field><xsl:value-of select="Data"/></Field>

</xsl:for-each>

</Record>

</xsl:for-each>

</Root>

</xsl:template>

</xsl:stylesheet>

Этот шаблон удаляет служебные теги Excel и преобразует данные в плоскую структуру.

Часто задаваемые вопросы

Можно ли сохранить в XML файл с макросами?

Нет, макросы (.xlsm) не экспортируются в XML. Чтобы сохранить логику макросов, сначала конвертируйте их в отдельные модули VBA, а затем вручную интегрируйте в целевую систему.

Почему в экспортированном XML вместо кириллицы отображаются знаки вопроса?

Проблема связана с неверной кодировкой. При сохранении выберите UTF-8 (в ручном режиме через Блокнот или специализированные редакторы вроде Notepad++). Также проверьте настройки региональных стандартов в Windows (Панель управления → Часы и регион).

Как экспортировать в XML только выделенный диапазон?

Стандартный экспорт сохраняет весь лист. Чтобы экспортировать только выделенную область:

  1. Скопируйте диапазон в новый файл (Ctrl + N → Вставить).
  2. Удалите лишние строки/столбцы.
  3. Сохраните как XML через Файл → Сохранить как.

Или используйте макрос:

Sub ExportRangeToXML()

Dim rng As Range

Set rng = Selection

rng.Copy

Workbooks.Add

ActiveSheet.Paste

ActiveWorkbook.SaveAs "C:\Export.xml", xlXMLSpreadsheet

ActiveWorkbook.Close False

End Sub

Поддерживает ли Google Таблицы экспорт в XML?

Нет, Google Sheets не имеет встроенной функции экспорта в XML. Альтернативные варианты:

  • Экспортируйте в .csv, а затем конвертируйте в XML через Python (библиотека pandas) или онлайн-сервисы.
  • Используйте Apps Script для генерации XML-кода на основе данных таблицы.
Можно ли сохранить в XML файл с условным форматированием?

Нет, условное форматирование (цвета ячеек по правилам) не сохраняется в XML. Чтобы передать эту информацию, экспортируйте данные в .xlsx, а затем обработайте файл с помощью Open XML SDK (для разработчиков) или специализированных конвертеров.