XML to Excel converter

A real .xlsx with zip codes intact and numbers you can sum. One row per item, nothing uploaded.

Converter

orders-sample.xml 4.2 KB

Reading the file… 0%

Found 5 order 9 item 20 columns

One row per

Each item gets its own row, with its order’s fields repeated.

Output
Choose columns (20 of 20)

Preview of the first 9 rows
export.generatedmeta.sourcemeta.countorder.idorder.statusorder.dateorder.customer.nameorder.customer.emailorder.customer.address.typeorder.customer.address.streetorder.customer.address.cityorder.customer.address.zipitem.skuitem.qtyitem.nameitem.priceitem.price.currencyitem.discountorder.noteorder.total
2026-11-02Shop51000pending2026-10-01Customer 0[email protected]shipping0 Main StSpringfield00123SKU-0-01Widget & Co. 0 – café9.99USDLeave at door, "fragile" <glass>78.00
2026-11-02Shop51001shipped2026-10-02Customer 1[email protected]shipping1 Main StSpringfield01123SKU-1-01Widget & Co. 0 – café9.99USD301.00
2026-11-02Shop51001shipped2026-10-02Customer 1[email protected]shipping1 Main StSpringfield01123SKU-1-12Widget & Co. 1 – café10.99USD0.10301.00
2026-11-02Shop51002pending2026-10-03Customer 2[email protected]shipping2 Main StSpringfield02123SKU-2-01Widget & Co. 0 – café9.99USD443.00
2026-11-02Shop51002pending2026-10-03Customer 2[email protected]shipping2 Main StSpringfield02123SKU-2-12Widget & Co. 1 – café10.99USD0.10443.00
2026-11-02Shop51002pending2026-10-03Customer 2[email protected]shipping2 Main StSpringfield02123SKU-2-23Widget & Co. 2 – café11.99USD443.00
2026-11-02Shop51003shipped2026-10-04Customer 3[email protected]shipping3 Main StSpringfield03123SKU-3-01Widget & Co. 0 – café9.99USD420.00
2026-11-02Shop51004pending2026-10-05Customer 4[email protected]shipping4 Main StSpringfield04123SKU-4-01Widget & Co. 0 – café9.99USDLeave at door, "fragile" <glass>401.00
2026-11-02Shop51004pending2026-10-05Customer 4[email protected]shipping4 Main StSpringfield04123SKU-4-12Widget & Co. 1 – café10.99USD0.10Leave at door, "fragile" <glass>401.00

Nothing is written until you click.

orders-sample.xlsx ·9 rows ·6.8 KB ·0.1 s

Download orders-sample.xlsx

How to convert XML to Excel

  1. Drop your XML file on the box above, or click Choose file. No file handy? Try the sample order export.
  2. Check the preview. “One row per” starts on the record that repeats most. Switch it to change what each row in the sheet is.
  3. Untick columns you don’t need under “Choose columns” (optional).
  4. Click Convert to Excel, then Download, and open the .xlsx in Excel, Google Sheets or Numbers.

What you get in the .xlsx

Not a CSV with an .xlsx label on it. The download is a proper workbook, and it’s built so you can start working the second it opens.

  • Bold header row, frozen, so the column names stay put while you scroll through 600,000 rows.
  • Filters switched on for every column. Click the arrow on order.status and pick “shipped”.
  • Column widths set from the header and the first 200 rows, so you aren’t staring at ####.
  • Numbers stored as numbers. Prices, quantities and totals like 78.00 are real numeric cells. SUM, AVERAGE and pivot tables work on them without “number stored as text” warnings.
  • Codes stored as text. Anything that only looks like a number keeps its exact form: the zip 00123, a 16-digit card or order reference, +33 phone prefixes, 1,000 with its comma.

That last pair took the most care. One converter we tested writes every cell as text, totals included, so a SUM over the amount column returns 0. Double-clicking a CSV fails the other way: Excel turns 00123 into 123. The rule here is strict on purpose. A value becomes a number only if it’s a plain decimal (-5, 9.99, 0.10) with no leading zero and at most 15 significant digits, because Excel rounds anything past the 15th digit to zero. Everything else stays text, exactly as written in your file.

Dates stay text too, written exactly as in the XML (2026-10-01). We never reformat your data.

Big files and Excel’s limits

An Excel sheet holds 1,048,576 rows. When your table is longer, the converter starts a new sheet (Data 1, Data 2…) with the header repeated, and tells you it did. A cell holds at most 32,767 characters, so longer values are cut and counted in the result notes. A 214 MB order export (600,000 rows) took about 15 seconds in Chrome, reading and writing, and came out as an 11.2 MB workbook.

Rows work the same way as on the CSV converter: one row per item with the order and customer fields filled in on every row, small lists numbered (payment[1], payment[2]), every field in the file given a column. And the file is processed in your browser, never uploaded.

Example: an order export

One order with two items, from the sample file. In the .xlsx, the tags under each column name show how the cells are stored.

Input: one order from the sample file

<order id="1001" status="shipped">
  <date>2026-10-02</date>
  <customer>
    <name>Customer 1</name>
    <email>[email protected]</email>
    <address type="shipping">
      <street>1 Main St</street>
      <city>Springfield</city>
      <zip>01123</zip>
    </address>
  </customer>
  <items>
    <item sku="SKU-1-0" qty="1">
      <name>Widget &amp; Co. 0 – café</name>
      <price currency="USD">9.99</price>
    </item>
    <item sku="SKU-1-1" qty="2">
      <name>Widget &amp; Co. 1 – café</name>
      <price currency="USD">10.99</price>
      <discount>0.10</discount>
    </item>
  </items>
  <total>301.00</total>
</order>
Output2 rows · 8 of 20 columns shown
Rows made from order 1001, one row per item
order.idnumberorder.customer.nametextorder.customer.address.ziptextitem.skutextitem.qtynumberitem.pricenumberitem.discountnumberorder.totalnumber
1001Customer 101123SKU-1-019.99301.00
1001Customer 101123SKU-1-1210.990.10301.00
We opened the full sample’s .xlsx in Excel for Mac and read the cells back: the first zip is the text 00123, the quantity and total columns are numbers.

Doing it inside Excel instead

Excel can read XML itself: Data > Get Data > From File > From XML in Microsoft 365, Developer > Import, or File > Open, which asks whether you want an XML table, a read-only workbook or the XML Source pane. It’s fine for flat files. Nested exports are where people get stuck, and no import can go past Excel’s row limit.

Our guide walks through each way, for Windows and Mac: how to open an XML file in Excel.

FAQ

Can I convert XML to Excel?

Yes. Drop the XML file on the box at the top of this page, check the preview, and click Convert to Excel. You get a real .xlsx file, not a renamed CSV: bold frozen header, filters on every column, zip codes kept as text and amounts stored as numbers, so SUM works straight away.

Is XML the same as XLSX?

No, though they’re related. An .xlsx file is a ZIP package of XML files in Microsoft’s Office Open XML format: one for each sheet, one for styles and so on. Your XML export is a single file with its own structure, and Excel can’t treat it as a workbook until it’s been turned into rows and columns.

How do I convert an XML file to Excel online for free?

Use the converter on this page. It’s free, there’s no account or sign-up, and nothing is uploaded: the file is processed by your own browser. Open the page, drop the file, pick “Excel .xlsx” if it isn’t already selected, and download the result.

Will Excel open an XML file directly?

Yes. Excel for Microsoft 365 and Excel 2016 through 2024 on Windows can open it through File > Open, Data > Get Data > From File > From XML, or Developer > Import. Flat files come through fine. Nested ones (orders with items, invoices with lines) tend to arrive as a confusing table. Our step-by-step guide covers all three ways.

What happens if my file has more than 1,048,576 rows?

That’s the most rows an Excel sheet can hold, header included. Past it, the converter starts a new sheet: Data 1, Data 2 and so on, each with the header repeated and up to 1,048,575 data rows. If you need everything in one place, convert to CSV, which has no row limit.

Why can’t Excel open my XML file?

Most often the file is broken. Excel’s “XML parse error” means the file has syntax errors or isn’t well-formed, often because an export was cut off. Drop it on the converter here: it names the line and column where the file breaks. Excel also refuses an import that would pass 1,048,576 rows.

More XML tools