Конвертация Excel в XML онлайн: полное руководство с примерами и лайфхаками

Формат XML стал стандартом де-факто для обмена структурированными данными между системами — от бухгалтерских программ (, SAP) до веб-сервисов и мобильных приложений. А таблицы Excel остаются самым популярным инструментом для работы с данными у 89% офисных сотрудников (по данным Statista 2023). Но что делать, когда нужно передать данные из .xlsx в систему, которая принимает только .xml? Онлайн-конвертеры кажутся простым решением, но здесь кроются подводные камни: от потери форматирования до ошибок кодировки.

В этой статье мы разберём 7 проверенных способов конвертации — от простейших онлайн-сервисов до полуавтоматических решений с сохранением структуры данных. Вы узнаете, как избежать типичных ошибок (например, когда даты в Excel превращаются в бессмысленные числа в XML), какие инструменты поддерживают XSD-схемы, и почему иногда лучше использовать Excel + Power Query, чем сторонние сервисы. А в конце — чек-лист для проверки полученного XML перед отправкой в целевую систему.

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

Зачем конвертировать Excel в XML: 5 реальных кейсов

XML (eXtensible Markup Language) — это не просто формат, а способ описать данные так, чтобы их понимали разные программы. Вот когда без конвертации не обойтись:

  • 📊 Импорт в бухгалтерские программы: , БухСофт, Парус требуют XML для загрузки справочников (контрагентов, номенклатуры) или выписок банка.
  • 🌐 API и веб-сервисы: Многие платформы (например, Яндекс.Маркет, Ozon) принимают каталоги товаров только в XML с жёсткой структурой.
  • 📱 Мобильные приложения: Если вы разрабатываете приложение с локальной базой данных, XML часто используется как промежуточный формат для миграции данных.
  • 🔄 Обмен между системами: Например, перенос данных из Excel в SAP или Oracle через ETL-процессы.
  • 📈 Аналитика и BI: Инструменты вроде Power BI или Tableau могут импортировать данные из XML с сохранением иерархии.

Ключевое отличие XML от Excel: в таблице данные хранятся в ячейках с координатами (например, A1), а в XML — в виде дерева элементов с тегами. Например, строка Excel с данными о товаре:

АртикулНазваниеЦена
1001Ноутбук Acer Nitro 579990

В XML преобразуется так:

<Товар>

<Артикул>1001</Артикул>

<Название>Ноутбук Acer Nitro 5</Название>

<Цена>79990</Цена>

</Товар>

Важно: если целевая система требует XML с конкретной XSD-схемой (описанием структуры), онлайн-конвертеры могут не подойти — они генерируют универсальный XML без учёта специфики.

📊 Для чего вам нужна конвертация Excel в XML?
Импорт в 1С/бухгалтерские программы
Загрузка каталога на маркетплейс
Интеграция с CRM/ERP
Другое

Excel vs XML: что теряется при конвертации

Не все данные из Excel можно идеально перенести в XML. Вот что чаще всего "ломается":

  • 📅 Даты и время: Excel хранит даты как числа (количество дней с 1900 года), а XML — как строки. Без правильной настройки конвертера 01.01.2026 может стать 45292.
  • 🎨 Форматирование: Цвета ячеек, шрифты, объединённые ячейки в XML не сохранятся — только сырые данные.
  • 🔢 Формулы: В XML попадёт результат вычисления, а не сама формула (например, вместо =СУММ(A1:A10) будет только число).
  • 📊 Сводные таблицы: Они преобразуются в плоские данные без иерархии.
  • 🔗 Гиперссылки: В большинстве случаев теряются, если не использовать специализированные инструменты.

Пример проблемы с датами: если в Excel ячейка отформатирована как дата, но содержит текст (например, "31.02.2026"), конвертер может:

  1. Проигнорировать значение (оставить пустую ячейку).
  2. Записать как есть (если XML допускает строки).
  3. Выдать ошибку (если требуется строгий формат даты).

Топ-5 онлайн-сервисов для конвертации Excel в XML

Если нужно быстро преобразовать один файл, онлайн-инструменты — самый простой вариант. Мы протестировали 12 сервисов и отобрали те, что:

  • ✅ Не требуют регистрации.
  • ✅ Поддерживают файлы до 50 МБ (большинство ограничивают 10–20 МБ).
  • ✅ Сохраняют кириллицу и специальные символы (например, , ).
Сервис Макс. размер файла Поддержка XSD Сохранение структуры Ограничения
ConvertCSV 50 МБ Таблица → плоский XML Не сохраняет иерархию листов
Zamzar 50 МБ Листы → отдельные XML Требует email для скачивания
FreeFormatter 10 МБ ✅ (ручная настройка) Поддержка вложенных тегов Медленная обработка больших файлов
CodeBeautify 2 МБ Простая структура Ограничение на количество строк
AConvert 40 МБ Листы → отдельные файлы Реклама, медленная загрузка

Какой сервис выбрать?

  • 🔹 Для одного листа без вложенных данных: ConvertCSV или Zamzar.
  • 🔹 Если нужна иерархия (например, заказы с вложенными товарами): FreeFormatter.
  • 🔹 Для больших файлов (20+ МБ): AConvert.

☑️ Подготовка файла перед конвертацией

Выполнено: 0 / 5

Конвертация через Excel: Power Query и VBA

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

Метод 1: Power Query (для Excel 2016+)

Power Query позволяет преобразовать данные в XML с настройкой структуры:

  1. Откройте файл Excel → перейдите на вкладку ДанныеПолучить данныеИз файлаИз Excel.
  2. Выберите ваш файл → нажмите Импортировать.
  3. В открывшемся окне Power Query выделите таблицу → ПреобразоватьВ XML.
  4. Настройте корневой элемент и теги (например, <Сотрудники> для строк).
  5. Сохраните как .xml.

Плюсы: сохраняется структура, можно настроить теги под XSD-схему.
Минусы: требует навыков работы с Power Query.

Метод 2: VBA-скрипт (для автоматизации)

Если конвертация нужна регулярно, напишите макрос:

Sub ExcelToXML()

Dim xmlDoc As Object, ws As Worksheet, row As Range, cell As Range

Set xmlDoc = CreateObject("MSXML2.DOMDocument")

Set ws = ThisWorkbook.Sheets("Лист1") ' имя листа

' Создаём корневой элемент

Dim root As Object

Set root = xmlDoc.createElement("Данные")

xmlDoc.appendChild root

' Проходим по строкам (начиная со 2-й, если 1-я — заголовки)

For Each row In ws.UsedRange.Rows

If row.Row > 1 Then

Dim item As Object

Set item = xmlDoc.createElement("Строка")

root.appendChild item

' Проходим по ячейкам строки

For Each cell In row.Cells

Dim field As Object

Set field = xmlDoc.createElement(ws.Cells(1, cell.Column).Value) ' берём имя из 1-й строки

field.Text = cell.Value

item.appendChild field

Next cell

End If

Next row

' Сохраняем XML

xmlDoc.Save "C:\output.xml" ' путь к файлу

MsgBox "XML сохранён!"

End Sub

Преимущества VBA:

  • 🔄 Автоматизация для сотен файлов.
  • 🛠 Гибкая настройка тегов (например, можно добавить атрибуты).
  • 🔒 Работает офлайн (без загрузки данных на сторонние серверы).
Как запустить VBA-скрипт в Excel

Откройте Excel → Alt + F11Вставка → Модуль → вставьте код выше → закройте редактор → нажмите Alt + F8, выберите макрос ExcelToXML и запустите.

Работа с XSD-схемами: как получить XML нужной структуры

Если целевая система требует XML с жёсткой структурой (например, для или Яндекс.Маркета), обычная конвертация не подойдёт. Вам нужна XSD-схема — файл, описывающий, какие теги должны быть в XML, их порядок и формат данных.

Пример XSD для каталога товаров:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="Каталог">

<xs:complexType>

<xs:sequence>

<xs:element name="Товар" maxOccurs="unbounded">

<xs:complexType>

<xs:sequence>

<xs:element name="Артикул" type="xs:string"/>

<xs:element name="Название" type="xs:string"/>

<xs:element name="Цена" type="xs:decimal"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

Как привязать XSD к Excel?

  1. Скачайте XSD-схему от получателя данных (например, с сайта Яндекс.Маркета).
  2. Откройте Excel → Файл → Сохранить как → выберите XML-данные (*.xml).
  3. В появившемся окне выберите Добавить схему и укажите путь к XSD-файлу.
  4. Сопоставьте столбцы Excel с элементами XSD (например, столбец B → тег <Название>).

⚠️ Внимание: Если структура вашей таблицы не совпадает со схемой, Excel выдаст ошибку. Например, если в XSD поле Цена должно быть типом decimal, а в Excel оно хранится как текст ("79 990 руб"), конвертация не пройдёт.

Типичные ошибки и как их исправить

Даже после успешной конвертации XML может не подойти для импорта в целевую систему. Вот самые частые проблемы:

Ошибка Причина Решение
XML-парсер: недопустимый символ В данных есть символы &, <, >, которые не экранированы. Замените в Excel: &&, <<, >>.
Несоответствие типов данных В XSD поле объявлено как integer, а в XML попала строка. В Excel измените формат ячейки на Числовой.
Отсутствует обязательный элемент В XSD тег помечен как required, но в XML его нет. Добавьте недостающий столбец в Excel или настройте XSD.
Некорректная кодировка Файл сохранён в Windows-1251, а система ожидает UTF-8. Откройте XML в Notepad++Кодировки → Преобразовать в UTF-8.

⚠️ Внимание: Если XML не проходит валидацию, используйте инструменты вроде XML Validation, чтобы найти точную строку с ошибкой. Часто проблема кроется в:

  • 🔹 Лишних пробелах в тегах (например, <Товар > вместо <Товар>).
  • 🔹 Незакрытых тегах (отсутствует </Товар>).
  • 🔹 Неправильных атрибутах (например, id="123" вместо ID="123").

Автоматизация конвертации: от Excel к XML без ручного труда

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

1. Power Automate (бывший Microsoft Flow)

Бесплатный инструмент от Microsoft для создания потоков автоматизации:

  1. Перейдите на Power AutomateСоздатьАвтоматизированный поток.
  2. Выберите триггер Когда файл добавляется в папку (указываете папку с Excel-файлами).
  3. Добавьте действие Excel Online (Business) → Извлечь таблицу.
  4. Добавьте действие Преобразовать в XML (используйте шаблон или свою XSD).
  5. Добавьте действие Сохранить файл в папке (указываете папку для XML).

Плюс: работает в облаке, не требует установки ПО.
Минус: бесплатная версия ограничена 750 запусками в месяц.

2. Python + библиотека pandas

Для разработчиков или продвинутых пользователей:

import pandas as pd

import xml.etree.ElementTree as ET

Чтение Excel

df = pd.read_excel("input.xlsx")

Создание XML

root = ET.Element("Каталог")

for _, row in df.iterrows():

товар = ET.SubElement(root, "Товар")

ET.SubElement(товар, "Артикул").text = str(row["Артикул"])

ET.SubElement(товар, "Название").text = row["Название"]

ET.SubElement(товар, "Цена").text = str(row["Цена"])

Сохранение

tree = ET.ElementTree(root)

tree.write("output.xml", encoding="utf-8", xml_declaration=True)

Как запустить: Установите Python → сохраните код в файл convert.py → выполните команду pip install pandas → запустите скрипт.

3. ETL-инструменты (Talend, Pentaho)

Для корпоративных задач с большими объёмами данных:

  • 🔹 Talend Open Studio: бесплатная версия с графическим интерфейсом для создания job'ов.
  • 🔹 Pentaho Data Integration: поддерживает сложные преобразования (например, объединение нескольких Excel в один XML).

Пример настройки в Talend:

  1. Создайте новый job → добавьте компонент tFileInputExcel (указываете путь к файлу).
  2. Добавьте tXMLMap для сопоставления полей Excel с тегами XML.
  3. Добавьте tFileOutputXML для сохранения результата.
  4. Запустите job.

Безопасность при конвертации: что нужно знать

Загружая файлы на онлайн-сервисы, вы рискуете:

  • 🔓 Утечкой данных: Некоторые сервисы сохраняют загруженные файлы на своих серверах (читайте Privacy Policy).
  • 🦠 Вредоносным ПО: Под видом конвертеров распространяются программы-шпионы.
  • 📛 Нарушением GDPR: Если в Excel есть персональные данные (ФИО, телефоны), их обработка третьими лицами может быть незаконной.

Как защититься:

  • 🔹 Используйте офлайн-инструменты (Excel, Python, VBA) для конфиденциальных данных.
  • 🔹 Перед загрузкой на онлайн-сервис удалите чувствительную информацию или замените её на фиктивные значения.
  • 🔹 Проверьте сервис на VirusTotal (загрузите ссылку на сайт).
  • 🔹 Для корпоративного использования выбирайте сервисы с сертификатом ISO 27001 (например, Zamzar).

⚠️ Внимание: Если в вашем Excel есть формулы с внешними ссылками (например, =VLOOKUP([book.xlsx]Sheet1!A1,...)), онлайн-сервисы могут попытаться открыть эти файлы, что приведёт к ошибке или утечке данных.

Частые вопросы

Можно ли конвертировать Excel в XML с несколькими листами?

Да, но результат зависит от инструмента:

  • 🔹 Онлайн-сервисы (например, Zamzar) создадут отдельные XML-файлы для каждого листа.
  • 🔹 Power Query позволяет объединить листы в один XML с вложенной структурой.
  • 🔹 VBA даёт полный контроль — можно создать один XML с тегами <Лист1>, <Лист2>.

Пример структуры для нескольких листов:

<Документ>

<Лист1>

<Строка>...</Строка>

</Лист1>

<Лист2>

<Строка>...</Строка>

</Лист2>

</Документ>

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

Это проблема с кодировкой. Решения:

  1. При сохранении XML в Excel выберите кодировку UTF-8 (в окне сохранения нажмите Сервис → Веб-параметры → Кодировка: Unicode (UTF-8)).
  2. Если XML уже создан, откройте его в Notepad++Кодировки → Преобразовать в UTF-8 без BOM.
  3. В VBA или Python явно укажите кодировку при сохранении:
    tree.write("output.xml", encoding="utf-8", xml_declaration=True)

⚠️ Не используйте Windows-1251 — она не поддерживает все символы Unicode.

Как конвертировать Excel в XML с сохранением формул?

Стандартные методы сохраняют только значения ячеек. Чтобы сохранить формулы:

  1. В Excel перейдите в Файл → Параметры → Дополнительно → в разделе Формулы включите Сохранять внешние ссылки как значения (это не поможет, но уменьшит риски).
  2. Используйте VBA для извлечения формул:
    Dim formula As String
    

    formula = cell.Formula ' получаем формулу вместо значения

  3. Сохраните формулы в отдельный столбец (например, Формула_Цены) и конвертируйте его в XML как текст.

Пример XML с формулой:

<Товар>

<Цена>79990</Цена>

<ФормулаЦены>=B2*C2*(1-D2)</ФормулаЦены>

</Товар>

Какие онлайн-сервисы поддерживают XSD-схемы?

Большинство бесплатных сервисов не умеют работать с XSD. Исключения:

  • 🔹 FreeFormatter: позволяет вручную сопоставить столбцы с тегами XSD.
  • 🔹 Liquid XML Studio (платный, но есть trial): полная поддержка XSD, валидация.
  • 🔹 Altova XMLSpy (платный): профессиональный инструмент для работы с XSD/XML.

Для бесплатного решения используйте Excel + XSD (описано в разделе про XSD).

Можно ли конвертировать Excel в XML на телефоне?

Да, но с ограничениями:

  • 📱 Android: Установите Excel + Termux (для запуска Python-скриптов) или используйте онлайн-сервисы через браузер.
  • 🍎 iOS: Приложение Excel не поддерживает экспорт в XML, но можно:
    1. Сохранить файл в CSV → конвертировать через ConvertCSV.
    2. Использовать Shortcuts (приложение для автоматизации) с действием "Преобразовать текст" (требуются навыки работы с регулярными выражениями).

    ⚠️ На мобильных устройствах сложно контролировать структуру XML — для важ