XML to Excel Converter

Or enter XML manually below

Cleared

Enter XML in the editor and click 'Convert' to get Excel output.

How XML to Excel Converter Works?

What's a valid XML input for this tool?

A valid XML input contains a root element with repeating child elements. Each repeating element represents a row, and its child elements become column headers. For example:

<data>
  <item>
    <os>Windows</os>
    <version>11</version>
    <architecture>x64</architecture>
  </item>
  <item>
    <os>macOS</os>
    <version>Tahoe</version>
    <architecture>ARM64</architecture>
  </item>
</data>

What does the output look like?

The output is an Excel file (.xlsx) with column headers derived from XML element names. Each repeating element becomes a row. The output of the above XML will be:

osversionarchitecture
Windows11x64
macOSTahoeARM64

Note: You need to click the "Download" button to download the Excel file, as Excel is a binary format that cannot be copied directly.

What if my XML has empty elements?

If your XML has empty elements, these values will be converted to empty cells in the Excel output. For example:

<data>
  <item>
    <browser>Firefox</browser>
    <engine></engine>
    <license />
  </item>
</data>

produces an Excel file as:

browserenginelicense
Firefox

What if my XML elements have different child elements?

The converter collects all unique element names from all items to create column headers. Missing elements in any item will be represented as empty cells. For example:

<data>
  <item>
    <language>Rust</language>
    <paradigm>Systems</paradigm>
  </item>
  <item>
    <language>Python</language>
    <typing>Dynamic</typing>
  </item>
</data>

produces an Excel file as:

languageparadigmtyping
RustSystems
PythonDynamic

Does this tool support deeply nested XML?

The tool flattens nested elements using dot notation for column headers. For example:

<data>
  <server>
    <name>nginx</name>
    <config>
      <port>80</port>
      <ssl>true</ssl>
    </config>
  </server>
</data>

produces columns like name, config.port, and config.ssl.

Note: For best results, use XML with a simple structure where repeating elements contain flat child elements.