Форматы · Конвертация

Как конвертировать XML в Excel: 4 проверенных способа

XML-файлы приходят отовсюду: выгрузки из 1С и банков, данные ФНС и ФИАС, ответы API. Анализировать их удобнее в таблице — но как именно загрузить XML в Excel и не получить иероглифы вместо кириллицы? Разбираем четыре рабочих способа: от встроенного импорта до Python-скрипта.

16 сентября 2026 Редакция Loadfile Чтение ~12 мин
Конвертация XML в Excel — схема импорта данных
Содержание
  1. Что такое XML и зачем переводить его в Excel
  2. Способ 1: встроенный импорт данных Excel
  3. Способ 2: Power Query — для сложных и батч-задач
  4. Способ 3: онлайн-конвертеры без установки ПО
  5. Способ 4: Python и pandas — для автоматизации
  6. Какой способ выбрать: сравнительная таблица
  7. Частые вопросы

XML (eXtensible Markup Language) — это формат структурированных данных с иерархическими тегами. Именно в XML хранят выгрузки 1С, декларации ФНС, данные кадастра ФИАС, прайс-листы интернет-магазинов и ответы множества API. О том, что такое XML и как его просто открыть — читайте в отдельном материале; здесь же сосредоточимся на задаче посложнее: перевести XML в полноценную таблицу Excel для анализа и работы с данными.

Коротко: XML конвертируется в Excel четырьмя способами — встроенным импортом, Power Query, онлайн-конвертером или через Python. Для разовых задач хватит интерфейса Excel; для сложных или батч-сценариев — Power Query; для быстрого результата — онлайн; для автоматизации — Python. Главная ловушка — кодировка кириллицы (windows-1251), её решение описано ниже.

Что такое XML и зачем переводить его в Excel

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

Excel — привычный инструмент для анализа табличных данных. Когда XML содержит однотипные записи (строки накладной, список товаров, реестр платежей), его удобно преобразовать в плоскую таблицу: каждый элемент становится строкой, каждый атрибут — столбцом. Аналогично CSV-формату, который тоже хранит таблицы — о работе с ним рассказывает статья как открыть большой CSV-файл. Отличие XML в том, что данные могут быть вложены на несколько уровней, а не только в одной плоскости.

Типичные сценарии в России: выгрузка из 1С в XML для загрузки в аналитическую систему, декларация ФНС в формате .xml для сверки данных, ФИАС-файлы адресов, прайсы поставщиков в формате CommerceML.

Способ 1: встроенный импорт данных Excel

Когда подходит

Excel 2016, Excel 2019, Microsoft 365. Простые XML-файлы с плоской или неглубокой структурой. Разовая задача без повторений.

Excel умеет импортировать XML напрямую через вкладку «Данные». Это самый простой маршрут — не нужно знать формулы Power Query или Python. Минус: с глубоко вложенными структурами инструмент может не справиться или импортировать не все данные.

Пошаговая инструкция

  1. Откройте вкладку «Данные» на ленте Excel.
  2. Нажмите «Получить данные» (в группе «Получение и преобразование данных»).
  3. Выберите «Из файла» → «Из XML».
  4. Укажите путь к файлу .xml и нажмите «Импорт».
  5. Откроется «Навигатор» — список таблиц, обнаруженных в файле. Выберите нужные.
  6. Нажмите «Загрузить», чтобы выгрузить данные в текущий лист, или «Преобразовать данные», чтобы предварительно настроить структуру в редакторе Power Query.
  7. Excel создаст таблицу (объект Table) на листе с данными из XML.

Если навигатор показывает пустые таблицы или не распознаёт структуру — значит XML имеет нестандартный формат или глубокую вложенность. В этом случае переходите к Способу 2.

Как исправить иероглифы вместо кириллицы при импорте XML

!
Проблема кодировки

Если вместо русского текста видите «кракозябры» — файл сохранён в кодировке Windows-1251 (cp1251), а Excel попытался прочитать его как UTF-8. Это частая проблема выгрузок из 1С и старых государственных систем. Подробнее о кодировках текстовых файлов — в статье кракозябры и кодировка текстового файла.

Решение через Power Query Editor (открывается после нажатия «Преобразовать данные» в навигаторе):

  1. В редакторе Power Query найдите в строке формул шаг Source.
  2. Кликните по шагу или нажмите значок шестерёнки рядом с ним.
  3. В диалоге «Xml.Document» или в строке формул замените параметр кодировки: добавьте 1251 третьим аргументом.
  4. Альтернативно: в строке формул введите вручную:
    = Xml.Tables(File.Contents("путь\к\файлу.xml"), null, 1251)
  5. Нажмите «Закрыть и загрузить» — данные появятся корректно.

Способ 2: Power Query — для сложных и батч-задач

Когда подходит

Вложенные XML-структуры, кириллица в Windows-1251, несколько файлов XML одновременно, регулярное обновление данных кнопкой «Обновить».

Power Query — встроенный в Excel ETL-инструмент (Extract, Transform, Load). Он предоставляет визуальный конструктор запросов и язык формул M, позволяя тонко настроить каждый шаг преобразования: раскрыть вложенные элементы, задать кодировку, объединить несколько файлов. Это наиболее мощный способ импортировать XML в Excel из всех четырёх рассматриваемых. Официальная документация по работе с XML в Power Query доступна на support.microsoft.com.

Импорт одного XML-файла через Power Query

  1. Данные → Получить данные → Из файла → Из XML.
  2. Выберите файл, откроется навигатор с деревом таблиц.
  3. Нажмите «Преобразовать данные» — откроется редактор Power Query.
  4. Если нужна Windows-1251: в строке формул найдите шаг Source и отредактируйте его:
    = Xml.Tables(File.Contents("C:\data\file.xml"), null, 1251)
  5. В навигаторе или редакторе выберите таблицу с нужными данными.
  6. Используйте кнопку «Развернуть» (⇉) в заголовке столбца типа Table/Record для раскрытия вложенных данных.
  7. Отфильтруйте, переименуйте столбцы по необходимости.
  8. «Закрыть и загрузить» — данные появятся на листе Excel.

Батч-импорт нескольких XML из папки

Если нужно объединить десятки XML-файлов (например, ежемесячные выгрузки из 1С) — Power Query делает это в несколько шагов. Подробный разбор функции Xml.Tables с примерами батч-загрузки описан на excel-vba.ru.

  1. Данные → Получить данные → Из файла → Из папки.
  2. Укажите папку, где лежат файлы .xml. Power Query покажет список всех файлов.
  3. Отфильтруйте по расширению: добавьте шаг «Фильтр строк» → Extension = ".xml".
  4. Добавьте пользовательский столбец (Добавить столбец → Настраиваемый столбец) с формулой:
    = Xml.Tables([Content], null, 1251)
  5. Разверните полученный столбец (кнопка ) — выберите нужные поля.
  6. При необходимости повторите шаг 5 для вложенных уровней.
  7. «Закрыть и загрузить». При добавлении нового файла в папку достаточно нажать «Обновить» в Excel — данные обновятся автоматически.

Вложенные элементы и атрибуты XML: как раскрыть таблицу

Когда XML имеет несколько уровней вложенности (например, заказ → позиции → характеристики), Power Query отображает вложенные узлы как тип Table или Record в ячейке. Чтобы получить их содержимое:

  • Кликните значок (развернуть) в заголовке столбца типа Table — выберите нужные поля.
  • Для Record кликните и отметьте атрибуты, которые хотите превратить в столбцы.
  • При глубоком дереве повторяйте операцию для каждого уровня — каждое нажатие «разворачивает» один уровень вложенности.
  • После разворачивания можно переименовать столбцы и убрать технические служебные поля.

Способ 3: онлайн-конвертеры без установки ПО

💡
Когда подходит

Разовая задача, небольшой файл (до 5–10 МБ), нет Office или Power Query. Важно: не загружайте конфиденциальные данные на сторонние сервисы — файл попадает на чужой сервер.

Онлайн-конвертеры превращают XML в XLSX за несколько секунд прямо в браузере. Не требуют установки и работают на любой платформе. Подходят для нечастых задач с нечувствительными данными.

СервисЛимит файлаФорматы выводаРегистрация
cdkm.com~5 МБXLS, XLSX, CSVНе нужна
TableConvert~2 МБ (вставка кода)XLSX, CSV, JSON, SQLНе нужна
Aspose XML to Excel50 МБXLSX, XLS, ODS, CSVНе нужна

Общий порядок работы с любым онлайн-конвертером:

  1. Откройте сайт конвертера в браузере.
  2. Загрузите XML-файл кнопкой «Upload» / «Загрузить» или перетащите его в зону загрузки.
  3. Выберите формат вывода (XLSX или XLS) и нажмите «Convert» / «Конвертировать».
  4. Скачайте результат. Проверьте, корректно ли отображается кириллица — большинство онлайн-конвертеров работают с UTF-8, но не с Windows-1251.

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

Способ 4: Python и pandas — для автоматизации

💡
Когда подходит

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

Python позволяет полностью автоматизировать конвертацию XML в Excel: запустили скрипт — получили готовый XLSX. Это особенно удобно для разработчиков и аналитиков, которые регулярно получают XML-выгрузки и хотят обрабатывать их без ручного вмешательства.

Простой XML: xml.etree.ElementTree + pandas

Стандартная библиотека Python содержит парсер XML — xml.etree.ElementTree. В сочетании с pandas получается компактный скрипт:

import xml.etree.ElementTree as ET import pandas as pd tree = ET.parse('data.xml') # загружаем файл root = tree.getroot() rows = [] for child in root: rows.append(child.attrib) # атрибуты → строки df = pd.DataFrame(rows) df.to_excel('output.xlsx', index=False) print('Готово!')

Скрипт читает все дочерние элементы корневого узла и их атрибуты, формирует датафрейм и сохраняет в XLSX. При необходимости можно адаптировать цикл под любую структуру XML — добавить child.find('subelement').text для текстовых значений вложенных тегов.

Для файлов в кодировке Windows-1251 укажите кодировку при открытии:

import io with io.open('data.xml', encoding='cp1251') as f: tree = ET.parse(f)

Сложный / глубоко вложенный XML: pd.read_xml()

Начиная с версии pandas 1.3, библиотека содержит встроенный метод pd.read_xml() — аналог pd.read_csv(), только для XML. Он справляется с большинством стандартных структур одной строкой:

import pandas as pd # UTF-8 (стандарт): df = pd.read_xml('data.xml') # Windows-1251 (выгрузки 1С, ФНС): df = pd.read_xml('data.xml', encoding='cp1251') df.to_excel('output.xlsx', index=False)

Для XML с пространствами имён (namespace, теги вида ns:element) добавьте параметр namespaces={'ns': 'http://...'}. При глубокой вложенности удобно использовать параметр xpath, чтобы указать точный путь к нужным элементам.

Установка зависимостей: pip install pandas openpyxl lxml (lxml ускоряет парсинг больших файлов).

Какой способ выбрать: сравнительная таблица

СценарийЛучший методПлюсыОграничения
Разовая конвертация простого файла Встроенный импорт Excel Не нужны доп. знания, 5 кликов Плохо с вложенными структурами
Файл с кириллицей (cp1251) Power Query с кодировкой 1251 Надёжно, настраивается точно Нужен Office 2016+ или Microsoft 365
Глубоко вложенный XML Power Query (expand) Визуальный контроль каждого уровня Требует времени на настройку
Батч-импорт 10+ файлов Power Query (из папки) Обновление одной кнопкой Все файлы должны иметь одинаковую структуру
Ежедневная автоматизация Python / pandas Полная автономность, любая логика Нужно знание Python
Нет Office на компьютере Онлайн-конвертер Работает в браузере, без установки Лимит размера; не для конф. данных

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

Почему Excel не открывает XML файл напрямую двойным щелчком?

При двойном щелчке Excel отображает XML «как есть» — в режиме XML-таблицы или как схему данных, а не в виде привычной таблицы. Это не то же самое, что импорт данных. Для корректного получения плоской таблицы нужно использовать маршрут Данные → Получить данные → Из файла → Из XML, который запускает Power Query и позволяет выбрать нужные элементы через навигатор.

Как исправить кракозябры и иероглифы при импорте XML в Excel?

Причина — кодировка Windows-1251 в файле при том, что Excel пытается прочитать его как UTF-8. В Power Query Editor найдите шаг Source и отредактируйте формулу: добавьте 1251 третьим аргументом: Xml.Tables(File.Contents("файл.xml"), null, 1251). Если кракозябры появились в онлайн-конвертере — сначала пересохраните файл в UTF-8 через Notepad++ (Кодировка → Преобразовать в UTF-8).

Можно ли конвертировать XML в Excel без Office — если нет лицензии?

Да, есть несколько вариантов. Онлайн-конвертеры (TableConvert, cdkm.com, Aspose) работают прямо в браузере без установки чего-либо. LibreOffice Calc (бесплатный) умеет открывать XML-файлы через Данные → Таблица из XML. Python с библиотекой pandas тоже не требует Office. Результат можно сохранить в формате .xlsx, который читается и в бесплатном Google Sheets.

Что делать, если XML содержит несколько вложенных уровней (nested XML)?

Используйте Power Query. После импорта файла вы увидите столбцы с типом Table или Record — это вложенные уровни. Нажмите значок ⇉ (развернуть) в заголовке такого столбца, выберите поля, которые хотите получить. Если уровней несколько — повторяйте операцию для каждого. Альтернатива для разработчиков — Python с pd.read_xml() и параметром xpath, который позволяет точно указать путь к нужным данным.

Как автоматически импортировать XML в Excel каждый день — без ручного нажатия?

Два пути. Первый: Power Query с подключением к папке — при появлении нового XML-файла достаточно нажать «Обновить все» или настроить автообновление через Данные → Обновить все → Параметры подключения → «Обновлять каждые N минут». Второй: Python-скрипт по расписанию через Планировщик задач Windows (Task Scheduler) или cron на Linux/Mac — скрипт сам берёт XML из папки, обрабатывает и сохраняет XLSX.

Какой максимальный размер XML-файла можно открыть в Excel?

Excel ограничен одним миллионом строк (1 048 576) на листе. По памяти Power Query справляется с файлами до нескольких сотен мегабайт, но это зависит от RAM компьютера. Файлы размером свыше 100 МБ или с количеством записей больше ~900 тысяч лучше обрабатывать через Python/pandas: он не ограничен листом Excel и работает эффективнее по памяти для больших данных.

Чем импорт XML отличается от открытия CSV в Excel?

CSV — плоский текстовый формат: одна строка = одна запись таблицы, столбцы разделены запятой или точкой с запятой. Он открывается в Excel напрямую, почти без дополнительных настроек. XML — иерархический формат: элементы могут быть вложены друг в друга, атрибуты хранятся отдельно от текстового содержимого. Для получения плоской таблицы нужен «маппинг» структуры. Если XML де-факто плоский (все данные на одном уровне) — сложность примерно та же, что у CSV. Об особенностях работы с табличными форматами читайте в разделе про чем открыть CSV.

Читайте также