XML в Excel и обратно

Вставьте XML или загрузите файл: конвертер найдёт повторяющийся элемент, разложит его поля по колонкам и покажет таблицу, которую можно скачать как .xlsx, CSV или JSON. Обратное направление собирает XML из книги Excel с вашими именами тегов.

или перетащите сюда: .xml, .yml, а в обратном режиме .xlsx, .xls, .ods, .csv

Как разбирать

Вставьте XML или загрузите файл.

Какие XML приходят чаще всего и что из них получается

У каждого формата свой повторяющийся элемент, и конвертер находит его по числу повторов. Таблица показывает, что окажется записью и какие колонки появятся.

ФайлЧто записьюЧто попадёт в колонки
Прайс для Яндекс Маркета (YML)offerid и available из атрибутов, name, price, currencyId, categoryId, url, вложенные param через точку с запятой
Выгрузка каталога из 1С (CommerceML)ТоварИд, Наименование, Артикул, Описание, группы; цены и остатки в ветке «Предложение»
RSS-лентаitemtitle, link, pubDate, description, category
Карта сайта sitemap.xmlurlloc, lastmod, changefreq, priority; вложенные картинки через точку
Книга «Таблица XML 2003»Rowячейки по колонкам листа, пропуски по ss:Index, листы в отдельном списке
Ответ API или выгрузка базыповторяющийся элементвсе поля записи, атрибуты с @, вложенные теги через точку

Как Excel сам открывает XML и где он ошибается

Excel умеет читать XML без надстроек, и для плоских файлов этого хватает. Сложности начинаются, когда записи вложены друг в друга или один тег повторяется внутри записи несколько раз.

Три способа открыть

Файл → Открыть с выбором XML-файла показывает окно с тремя вариантами. «XML-таблица» строит схему по содержимому и раскладывает данные по колонкам, при этом вложенные элементы получают имена через косую черту, а повторяющиеся теги превращаются в дополнительные строки, из-за чего одна запись растягивается на несколько. «Книга только для чтения» показывает документ как дерево в клетках, читать это неудобно. «Область задач XML-источник» рассчитана на файлы с готовой схемой XSD и нужна для регулярного импорта одной и той же формы.

Второй путь: Данные → Получить данные → Из файла → Из XML. Это Power Query: он показывает таблицы файла, даёт раскрыть вложенные ветки кнопкой в заголовке колонки и запоминает шаги, так что следующий такой же файл обновится по кнопке. Для регулярных выгрузок из 1С или прайсов поставщика это удобный вариант, для разового файла настройка занимает дольше, чем сама работа.

Сохранить таблицу в XML

Файл → Сохранить как → Таблица XML 2003 отдаёт книгу целиком в формате SpreadsheetML: листы, ячейки, стили. Такой файл поймёт другой Excel и конвертер выше, а программа, которая ждёт свой формат вроде «rows → row → поле», его не примет. Второй вариант в том же меню, «XML-данные», работает только после сопоставления столбцов со схемой в области задач XML-источник, без схемы Excel откажется сохранять.

<?xml version="1.0" encoding="UTF-8"?> <rows> <row> <Артикул>00123</Артикул> <Название>Кресло офисное</Название> <Цена>12500</Цена> </row> </rows>

Именно такой XML собирает режим «Excel → XML»: имена корня и записи задаются в полях, заголовки таблицы становятся тегами, а спецсимволы &, < и > экранируются по правилам XML. Если получатель ждёт значения в атрибутах, переключатель «колонки становятся атрибутами» соберёт запись вида <row Артикул="00123" Цена="12500"/>.

Как дерево тегов становится таблицей

XML описывает дерево, а таблица плоская, поэтому главный вопрос конвертера: какой элемент считать строкой. Он перебирает все теги документа и считает, сколько раз каждый повторяется среди соседей с общим родителем; тег с наибольшим числом повторов и с полями внутри становится записью. В прайсе для Яндекс Маркета это offer, в выгрузке 1С Товар, в RSS item, в карте сайта url. Список кандидатов показан справа, и запись можно сменить: тогда из того же файла получится другая таблица, например цены вместо товаров.

Каждая запись раскладывается в строку: атрибуты становятся колонками со знаком @ впереди, вложенные теги дают колонки с путём через точку, повторяющиеся теги внутри записи склеиваются через точку с запятой. Префиксы пространств имён убираются, чтобы вместо ss:Data в шапке стояло Data. Отдельная ветка разбирает книги «Таблица XML 2003» из самого Excel: листы, строки, ячейки и пропуски колонок по атрибуту ss:Index. Обратный режим собирает XML из книги или вставленных клеток: имена корня и записи задаются полями, заголовки становятся тегами, спецсимволы экранируются, а колонки по выбору идут элементами или атрибутами. Для JSON рядом есть такой же конвертер.

Сравнение записи данных в JSON и XML
Одни и те же данные в XML и JSON: конвертер сводит оба формата к таблице одинаково. Фото: Diego Mariano, CC BY-SA 4.0.
Что в XMLЧто в таблицеПример
атрибут записиколонка с @<offer id="101"> → @id = 101
вложенный тегколонка с именем тега<price>12500</price> → price = 12500
тег в тегепуть через точку<stock><msk>7</msk></stock> → stock.msk = 7
повторяющийся тегзначения через «; »два <param> → «чёрный; сетка»
тег с атрибутом и текстомдве колонки<param name="Цвет">чёрный</param> → param.@name и param

История: от SGML до выгрузок 1С

XML вырос из SGML, языка разметки документов, который стал стандартом ISO 8879 в 1986 году и использовался в издательствах и оборонной документации. SGML был слишком сложен для веба, и рабочая группа W3C во главе с Джоном Босаком упростила его до десятка страниц правил; рекомендация XML 1.0 вышла 10 февраля 1998 года, редакторами были Тим Брей, Жан Паоли и Майкл Сперберг-Маккуин. Идея была в обмене данными между любыми программами: строгий синтаксис, обязательное закрытие тегов, кодировка в заголовке файла.

Excel получил поддержку XML в версии 2002 и расширил её в 2003: появился формат «Таблица XML 2003», он же SpreadsheetML, где каждая ячейка описана тегом Cell с вложенным Data. Через четыре года на его основе Microsoft выпустила Office Open XML, и привычный .xlsx с 2007 года устроен как zip-архив с XML-файлами внутри; в 2008 году формат стал стандартом ISO/IEC 29500. Так XML оказался и снаружи Excel, как формат обмена, и внутри, как способ хранения.

В России XML стал языком выгрузок: формат CommerceML для обмена каталогами между 1С и интернет-магазинами, YML для прайсов Яндекс Маркета, отчётность в налоговую и фонды, банковские выписки. Всё это файлы с глубокой вложенностью, которые Excel открывает с трудом, поэтому вопрос «как открыть XML в Excel» задают тысячи раз в месяц.

Экран с кодом разметки
Разметка тегами: XML унаследовал от SGML угловые скобки и обязательное закрытие элементов. Фото: Martin Vorel, CC BY-SA 4.0.
Схема дерева данных
XML это дерево, таблица это плоскость; конвертер выбирает уровень дерева, который станет строками. Фото: Ribbon, CC BY-SA 3.0.
Табулятор для перфокарт
Табуляционные машины сводили карты в таблицы; конвертер делает то же с деревом тегов. Фото: Викисклад, общественное достояние.

Как разобрать файл и собрать XML под программу

Загрузите файл или вставьте XML в поле. Над таблицей появится число записей и колонок и имя тега, который стал записью. Если это не тот уровень, откройте список «запись» справа: там теги с числом повторов, и выбор другого перестраивает таблицу без повторной загрузки. Галочки убирают префиксы пространств имён и атрибуты, если те не нужны. Дальше «Скачать .xlsx», CSV в UTF-8 с BOM для программ или JSON массивом объектов; кнопка «Копировать для Excel» кладёт клетки в буфер, и они лягут по колонкам после вставки в лист.

Для сборки XML переключитесь на «Excel → XML», загрузите книгу или вставьте клетки. Впишите имя корня и имя записи, которые ждёт программа-получатель, выберите, чем станут колонки, и проверьте результат в окне предпросмотра: он пересчитывается при каждом изменении. Заголовки с пробелами и знаками превратятся в допустимые имена тегов с подчёркиванием. Книгу «Таблица XML 2003» так собрать нельзя, для неё используйте «Сохранить как» в самом Excel; чтобы подготовить данные перед сборкой, пригодится сравнение таблиц.

Способ выбора записипо числу повторов тега
Атрибутыколонки с @
Вложенные тегипуть через точку
Повторы внутри записичерез «; »
SpreadsheetML 2003по листам, ss:Index учтён
Выход.xlsx, CSV, JSON, копия
Обратноэлементы или атрибуты
Стандарт XML 1.010 февраля 1998 года

Как пользоваться

  1. Подойдёт выгрузка из 1С, прайс для Яндекс Маркета, RSS-лента, sitemap, ответ API или книга Excel, сохранённая как «Таблица XML 2003»: у неё листы появятся в отдельном списке.
  2. Записью считается элемент, который повторяется чаще других: товар, строка, item, url. Если угадано не то, выберите другой тег в списке «запись», таблица перестроится.
  3. Атрибуты идут колонками с @ впереди, вложенные теги через точку: цена.валюта. Префиксы пространств имён по умолчанию убираются, повторяющиеся теги склеиваются через точку с запятой.
  4. .xlsx для Excel, CSV в UTF-8 с BOM, JSON массивом объектов. В режиме «Excel → XML» загрузите книгу, задайте имена корня и записи, выберите элементы или атрибуты.

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

Как открыть XML в Excel без конвертера

Через «Файл → Открыть» Excel предложит три варианта: «XML-таблица» строит схему сам и раскладывает данные по колонкам, «книга только для чтения» показывает документ как есть, «область задач XML-источник» нужна для сопоставления с готовой схемой. Первый вариант работает для простых файлов; вложенные структуры и повторяющиеся теги Excel часто дублирует или сплющивает, поэтому для выгрузок 1С и прайсов удобнее конвертер.

Почему колонок больше, чем ожидалось

Каждый вложенный тег становится своей колонкой с путём через точку, а каждый атрибут колонкой с @. Так ни одно поле не теряется. Лишние колонки в Excel удаляются за секунду, восстановить потерянное поле после конвертации сложнее.

Что делать с XML из 1С

Выгрузка в формате CommerceML устроена как «КоммерческаяИнформация → Каталог → Товары → Товар»; конвертер выбирает записью «Товар» сам, потому что он повторяется чаще всего. Свойства и цены лежат в отдельных ветках того же файла: выберите записью «Предложение» или «Цена», и получится вторая таблица.

Как сделать XML из таблицы для загрузки в программу

Загрузите .xlsx или вставьте клетки, задайте имя корня и имя записи так, как ждёт программа-получатель, выберите, чем станут колонки: вложенными элементами или атрибутами записи. Заголовки таблицы станут именами тегов; пробелы и знаки в них заменяются подчёркиванием, а имя, начинающееся с цифры, получает подчёркивание впереди.

Поддерживается ли «Таблица XML 2003» из Excel

Да: файл с пространством имён urn:schemas-microsoft-com:office:spreadsheet разбирается по листам, строкам и ячейкам с учётом пропусков через ss:Index. Каждый лист выбирается в списке и скачивается отдельно.

Сколько данных можно обработать

Разбор идёт в браузере: файлы в несколько десятков мегабайт и сотни тысяч записей раскладываются за секунды. На экране показываются первые двести строк, в файл уходят все.

Куда уходит файл

Никуда: разбор и сборка идут на вашем устройстве, ничего не отправляется и не сохраняется.

Похожие инструменты

Фильтр строк

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

Открыть
ВПР онлайн

Объединить две таблицы по ключевому столбцу без формул: подтянуть столбцы из второй таблицы к первой, показать совпадения и строки без пары. Ключи сравниваются без регистра, пробелов и буквы ё, режим «только цифры» для телефонов; XLSX и CSV.

Открыть
Таблица в Markdown и HTML

Конвертер таблицы из Excel, CSV, Markdown или HTML в восемь разметок: Markdown с выравниванием, HTML с thead, моноширинный текст для Telegram, LaTeX, SQL, Jira, MediaWiki, reStructuredText. Предпросмотр, копирование, скачивание.

Открыть
CSV в Excel и обратно

Конвертер CSV в .xlsx с автоопределением кодировки и разделителя, без иероглифов и склеенных колонок; обратно из книги Excel делает CSV в UTF-8 с BOM или Windows-1251 с нужным разделителем.

Открыть
JSON в Excel и обратно

Ответ API или экспорт в JSON в таблицу Excel: находит массив записей в глубине, вложенные поля через точку, NDJSON построчно; обратно собирает JSON из книги в трёх формах с типами.

Открыть
Удалить пустые строки

Убирает пустые строки и строки из пробелов или знаков-заглушек, умеет оставить одну между абзацами, считает было и стало; под инструментом способы для Excel, Word, Google Таблиц и Notepad++.

Открыть

Ещё инструменты для списков

Удаление дубликатов и сравнение двух списков, сортировка, столбец в строку и обратно, нумерация, частотность и шаблонизатор — в разделе 29 инструментов.