Home › Developer Tools › XML to Excel Converter

XML to Excel Converter

Paste XML or open a file, and every repeating element becomes a row in an Excel sheet. Attributes and nested elements are flattened into clearly named columns, repeated children can be joined, numbered or moved to their own sheet, and the .xlsx file is created right in your browser.

Last updated:

Spreadsheet preview
The table preview appears here.

Your XML is parsed and the .xlsx file is built inside your browser; nothing is uploaded.

Advertisement
Advertisement

How to use the XML to Excel Converter

  1. Paste your XML into the input box, open an .xml file or drop it onto the box. A sample catalog is loaded so you can try it right away.
  2. Check the record element: the tool picks the repeating element automatically; choose another path from the list if you want different rows.
  3. Choose how attributes, nested elements and repeated children become columns, and review the live table preview.
  4. Set the sheet and file name and the header options (bold, frozen, filter buttons).
  5. Click Download Excel (.xlsx), or download a CSV or copy the table to paste into an existing workbook.

How XML becomes rows and columns

XML is a tree, while a spreadsheet is a flat grid. The converter walks each record element and turns every value it finds into a cell. With the sample catalog the mapping looks like this:

XML inside <product>Column nameCell value
id="P-100" (attribute)id or @idP-100
<name>Trail Running Shoe</name>nameTrail Running Shoe
<price currency="USD">89.99</price>price, price.currency89.99 (number), USD
<supplier><name>Peak Gear</name>…supplier.namePeak Gear
<tags><tag>running</tag><tag>outdoor</tag>…tags.tagrunning; outdoor
Two <review> elementsreview.author, review.rating…Joined, numbered, or a separate "review" sheet

Choosing the repeated-element mode

  • Join in one cell keeps one row per record and is best for short lists such as tags or categories.
  • Numbered columns (tag[1], tag[2]…) keep every value in its own cell, which helps when the list has a fixed meaning, such as phone[1] and phone[2].
  • Separate sheet creates a child table (for example all reviews) with a column pointing back to the parent row and ID. Use it for one-to-many data you want to filter or pivot, like order lines.

Tips for clean spreadsheets

  • Pick the right level. If your rows look too wide or too few, choose a deeper record path from the list (for example orders/order/line instead of orders/order).
  • Namespaces are kept in column names (for example g:price in shopping feeds); namespace declarations themselves are skipped.
  • Keep IDs as text. Values with leading zeros are never converted to numbers, and you can turn off "Numbers as numbers" to keep every value exactly as text.
  • Need JSON or CSV instead? The same flattening rules are used by the XML to CSV and XML to JSON tools on this site.

Frequently asked questions

How do I convert an XML file to Excel?

Open or paste the XML here, confirm the element that repeats once per record (for example product or item), adjust the column options and click Download Excel (.xlsx). Each record becomes a row and each attribute or child element becomes a column.

What is the record element?

It is the XML element that represents one row of data, such as each <product> inside <catalog>. The converter counts element paths and picks the most likely repeating one, but you can select any other path from the list, for example a deeper element such as order/line.

How are nested and repeated elements handled?

Single nested elements are flattened into columns with a path name, so <supplier><name> becomes supplier.name. Elements that repeat inside one record can be joined into one cell separated by semicolons, spread over numbered columns like tag[1] and tag[2], or moved to a separate sheet that links back to the parent row.

Will my numbers, IDs and dates stay correct?

Plain numbers such as 24.50 or 130 are stored as numeric cells so you can sum and sort them. Values with leading zeros, more than 15 digits, currency symbols or other characters remain text, so ZIP codes and long IDs are not changed. Dates are kept exactly as written in the XML.

Can Excel open XML directly?

Desktop Excel can import some XML through Data > Get Data or the XML Source pane, but it often struggles with attributes and deeply nested data and is not available in every version. Converting to .xlsx first gives you a plain table that opens anywhere.

Is my XML uploaded to a server?

No. The XML is parsed by your browser's built-in parser and the spreadsheet file is assembled locally in the page, so your data never leaves your device.

Are there size limits?

Excel allows up to 1,048,576 rows and 16,384 columns per sheet and 32,767 characters per cell. In practice the limit here is your browser's memory; files of tens of megabytes usually convert fine on a desktop computer.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

XML to CSV ConverterConvert XML to CSV: detects repeating records, flattens nested data, pick your columns.JSON to Excel ConverterTurn JSON into a styled .xlsx spreadsheet; nested arrays become their own linked sheets.XML to JSONConvert XML to JSON with validation.CSV to Excel ConverterConvert CSV files to a real .xlsx workbook with typed numbers and dates, one sheet per file.JSON to CSVConvert JSON data to CSV for spreadsheets.CSV to JSONConvert CSV data to JSON with live preview.Excel to CSVConvert XLSX spreadsheets to CSV.CSV ViewerOpen a CSV or TSV file as a sortable, filterable table.Excel Viewer (XLSX / XLS)Open XLSX, XLS and ODS spreadsheets in your browser without Excel.Line Ending ConverterConvert text and files between CRLF, LF and CR line endings.Markdown to HTMLConvert Markdown to clean HTML with a live editor.Text Encoding ConverterDetect and convert text file encodings like UTF-8, UTF-16 and Latin-1.JSON ViewerExplore JSON as a collapsible tree, search keys and values and copy any node's path.TTF to WOFF2 ConverterConvert TTF and OTF fonts to WOFF2 or WOFF and get a ready @font-face CSS snippet.Chmod CalculatorConvert Linux file permissions between checkboxes, octal (755) and symbolic (rwxr-xr-x) notation.JSON to TypeScriptGenerate TypeScript interfaces or types from JSON, with nested types and optional fields.Morse Code TranslatorTranslate text to Morse code and back, then play it as sound or a blinking light, or save a WAV.HTML Table GeneratorBuild HTML tables in an editable grid with styles, header rows, CSV import and live preview.Hex to Text ConverterConvert hex to text and text to hex with UTF-8 support and space, 0x, \x or comma formats.JSON to XML ConverterConvert JSON to well-formed XML with attributes, arrays and pretty print.JSON to YAML ConverterConvert JSON to clean YAML as you type, with indent, quoting and sort options.YAML to JSON ConverterConvert YAML to pretty or minified JSON, with errors pinned to the exact line.HTML to Markdown ConverterTurn HTML or pasted rich text into clean Markdown with tables and live preview.Markdown Table GeneratorBuild Markdown tables in a grid or paste from Excel/CSV, with alignment and preview.JSON ValidatorCheck JSON with the exact line and column of each error, fix tips and one-click auto-fix.Image to Base64Convert images to Base64 data URIs, CSS backgrounds and HTML img tags in your browser.Base64 to ImagePaste a Base64 string or data URI to preview, identify and download the image.JSON CompareCompare two JSON documents and see every added, removed and changed path.Hex to DecimalConvert hex to decimal instantly with steps and signed mode.Decimal to HexConvert decimal to hex instantly with steps and signed mode.Binary to DecimalConvert binary to decimal instantly with steps and signed mode.Decimal to BinaryConvert decimal to binary instantly with steps and signed mode.Two's Complement CalculatorDecimal to two's complement binary and back for 4-64 bits, with invert-and-add-1 steps.CSV to XML ConverterConvert CSV to well-formed XML with custom root and row names, escaping and pretty print.TOML to JSON ConverterConvert TOML to JSON and JSON to TOML with a full v1.0 parser and clear error lines.JSON to Go StructTurn JSON into Go structs with inferred types, nested structs and json tags.JSON to Python ClassGenerate Python dataclasses, Pydantic models or TypedDicts with type hints from JSON.JSON to C# ClassConvert JSON to C# classes or records with System.Text.Json or Newtonsoft attributes.Split Excel FileSplit an Excel sheet into several files by row count or by each value in a column, as ZIP.SQL Create Table GeneratorDefine columns, keys, defaults and indexes; get CREATE TABLE SQL for MySQL, Postgres and more.SQL IN Clause GeneratorTurn a pasted list into a SQL IN ('a','b') clause with quoting, dedupe and 1,000-item chunks.SQL Online CompilerRun SQL queries online on SQLite with sample databases, a result grid, CSV export and .db save.SQL to ER DiagramPaste CREATE TABLE statements and get an entity-relationship diagram with keys and links.XML to XSD GeneratorGenerate an XML Schema (XSD) from sample XML: types, occurrences, attributes and namespaces.XML ValidatorCheck if XML is well-formed, see the exact line and column of each error and pretty-print it.Wildcard Mask CalculatorConvert a subnet mask or CIDR to a wildcard mask for ACLs and OSPF, with range and binary.CSV to VCF ConverterConvert a contacts CSV into a vCard (.vcf) file, mapping columns to name, phone, email and more.CSV to YAML ConverterConvert CSV rows to a YAML list of mappings with type inference and delimiter detection.Endianness ConverterSwap byte order of 16, 32 and 64-bit hex values and see big- and little-endian integers and floats.Excel to SQL ConverterTurn an Excel sheet into CREATE TABLE and INSERT statements for MySQL, PostgreSQL, SQLite or SQL Server.Excel to VCF ConverterTurn an Excel contact list into a vCard .vcf file for iPhone, Android, Google or Outlook.File to C ArrayConvert any file into a C or C++ byte array header, like xxd -i, with const and PROGMEM options.Image to C ArrayConvert images to monochrome, RGB565 or RGB888 C arrays for OLED, LCD and TFT displays.JSON Merge ToolDeep-merge two or more JSON objects with array concat, replace or union and a conflict rule.JSONL to CSV ConverterConvert JSON Lines / NDJSON to CSV with flattened columns; streams large files locally.PHP Unserialize OnlineDecode PHP serialize() strings to JSON, a tree or print_r, and serialize JSON back to PHP.SQL Dialect ConverterTranslate SQL between MySQL, PostgreSQL, SQLite, SQL Server, Oracle, BigQuery and more.TSV to JSON ConverterTurn tab-separated data pasted from Excel or Sheets into a JSON array or keyed object.XLS to XLSX ConverterConvert old Excel 97-2003 .xls workbooks to modern .xlsx files in your browser, several at once.XSD to XML Sample GeneratorGenerate a sample XML document from an XSD schema, with types, attributes and namespaces.YAML to CSV ConverterTurn a YAML list of objects into CSV with dot-notation columns, custom column order and download.DOCX to Markdown ConverterConvert Word .docx to clean Markdown with headings, lists, tables, links and images in a ZIP.ES6 to ES5 ConverterTranspile modern JavaScript (ES2015+) to ES5 with Babel: targets, module format and loose mode.JavaScript Object to JSONTurn JS object literals and Python dicts into valid JSON: quotes keys, fixes commas and values.JSON Graph VisualizerSee JSON as an interactive node graph with zoom, collapse and search; export PNG or SVG.KML ViewerOpen KML and KMZ files on an interactive map: placemarks, paths, polygons, folders, export.MySQL to PostgreSQL ConverterConvert MySQL dumps and CREATE TABLE statements to PostgreSQL: types, AUTO_INCREMENT, ENUMs, quotes.Text to CSV ConverterTurn space-aligned, fixed-width, pipe or tab separated text into clean CSV with a live preview.
See all 129 Data & File Format Converters →