XML ⇄ Excel Converter
Turn a list of XML records into an Excel sheet with one row per record, or export a workbook back to XML, for files up to 200MB.
Or upload a .xml file:
Drag & drop a file here, or click to browse
Or convert a .xml file directly — supports files up to 200MB
Drag & drop a file here, or click to browse
Processed in the background, so the page stays responsive even for huge files
How to use this tool
For XML → Excel, paste XML containing a repeating list of records and download a spreadsheet with one row per record. For Excel → XML, upload a workbook and each row becomes a <record> element in the exported XML. Nested XML fields are flattened using dotted column names. Files up to 200MB are supported — large uploads are processed in a background Web Worker so the page never freezes, and everything runs locally in your browser.
From XML records to columns
A typical product export:
<catalog>
<product id="p1">
<name>Desk Lamp</name>
<price currency="INR">1499</price>
<sku>00731</sku>
</product>
<product id="p2">
<name>Chair</name>
<price currency="INR">4999</price>
<sku>00732</sku>
</product>
</catalog>becomes a sheet with the columns name, price.#text, price.@_currency, sku and @_id, and one row per product. The price element carries both a value and an attribute, so it splits into a .#text column for the number and a column for the currency attribute. The SKUs keep their leading zeros.
Editing in Excel and converting back
The unusual column names are what make the reverse trip work. Change prices or names in Excel, keep the header row as it is, and convert the sheet back: each row becomes a <record>, price.#text and price.@_currency are rebuilt into <price currency="INR">1499</price>, and @_id goes back to being an attribute. The outer element names are generic (<root> and <record>), so if the receiving system expects <catalog> and <product>, rename those two tags afterwards.
When a different tool fits better
If the XML fails to convert, check that it is well-formed with the XML / XSD Validator, which points to the line and column of the problem (for example an unclosed tag or a bare &). For deeply nested or irregular documents that don't fit a table, use the XML ⇄ JSON Converter. When the rows are headed for a script or database import rather than a person, the XML ⇄ CSV Converter uses the same record detection and column names.
Frequently Asked Questions
Which XML elements become rows?
The converter finds the first element that repeats, such as <product> inside <catalog>, and makes one row per occurrence. Child elements become columns, attributes become columns prefixed with @_ (so id="p1" becomes an @_id column), and deeper nesting uses dotted names such as address.city.
Why does a file with only one record fail?
With a single <product>, there is no repeating list to turn into rows, so the tool reports that it could not find one. For a one-off document like that, the XML ⇄ JSON Converter shows the full structure instead.
What does Excel → XML produce?
Each row becomes a <record> element inside a <root> element. Dotted column headers are rebuilt into nested elements and @_ columns become attributes, so a sheet exported by this tool converts back to the same structure. Headers that are not valid XML names are adjusted: "First Name" becomes <First_Name> and "2026 Sales" becomes <_2026_Sales>.
Are product codes with leading zeros kept?
Yes. Element text that looks numeric becomes a number, except codes that only look like numbers: 00731 (leading zero), 0x1F (hex) and 2E10 (which would otherwise be read as 2 × 10^10) stay exactly as written.
Related Tools
Related Blog Posts
Converting CSV and XML to Excel Without Losing Data
Why double-clicking a CSV mangles PIN codes, long IDs and ₹ signs, what a careful CSV-to-Excel conversion does instead, and how XML records map to spreadsheet columns.
Read moreHow to Convert JSON to Excel, CSV, XML and YAML (and Back)
What actually happens to your data when JSON becomes a spreadsheet, XML, or YAML: missing keys, nested values, leading zeros, and the XML array problem, with real converter output.
Read moreHow to Flatten Nested JSON and Convert JSONL Files
How dot-notation flattening turns nested objects and arrays into spreadsheet columns, what survives the trip back, and how JSON Lines differs from a normal JSON file.
Read more