Convert Excel to XML
Turn a worksheet into well-formed XML for imports, feeds and integrations — element names taken from your headers, typed values, and the root and row names you choose.
- Never stored
- No queue, no waiting
- No signup, no watermark
How it works
Add your workbook
Drop an .xlsx, .xls or .ods file and pick the sheet, with a live preview of the XML.
Name the elements
Set the root and row element names, raw or displayed values, and what to do with empty cells.
Copy or download
Copy the XML or save it as an .xml file.
A grid described as a tree
Each sheet becomes a repeating element per row, with one child element per column named from the header row — which is what makes the result readable by anything expecting data XML rather than a spreadsheet. Column names have to become valid element names on the way, and XML is stricter than a spreadsheet header: a name cannot begin with a digit, cannot contain spaces or most punctuation, and is case-sensitive. So "Order Total (£)" becomes something tidier, and two headers that differ only in punctuation can end up needing to be told apart.
What travels is values, not appearance. A cell showing £1,234.50 is stored in the workbook as the number 1234.5 with a format applied, and it is the number that goes into the XML — which is almost always right, since a consuming system wants the value rather than the currency symbol. Formulas are gone in the same way: what you get is what the formula produced, because XML has nowhere to keep the formula itself. Colours, fonts, borders, conditional formatting, charts and images have no representation here at all.
Dates are the one to check. A spreadsheet stores a date as a number of days since an epoch and displays it through a format, so a date can emerge as 45356 rather than as a date, depending on how the cell was set up. If dates matter to whatever reads the XML, look at them before relying on the file — and consider formatting them as text in the workbook first, which removes the ambiguity entirely.
The five characters XML reserves — ampersand, angle brackets and quotes — are escaped in the values, so text containing them survives intact. Empty cells produce empty elements rather than being omitted, which keeps every record the same shape and makes the output far easier to process than one where missing fields simply vanish. Password-protected workbooks must have their password removed first.
When you want something else
When the XML has to match a specific schema — an industry format, a government filing, a system's import format — a generic conversion will not produce it, and no amount of configuration here will either. That is a mapping job: XSLT transforms this output into the required shape, and xmllint --schema confirms the result before you submit it.
For anything repeated, script it. Python's openpyxl and pandas read a workbook and write whatever XML you specify, with control over how dates and numbers are rendered, which is the part that matters. And it is worth asking whether XML is really the target — most systems built this decade would rather have JSON or CSV, and XML is usually a requirement inherited from something older.
Frequently asked questions
What does the XML look like?
One element per row, with a child element per column named after its header: <rows><row><Name>Ada</Name><Joined>2024-03-15</Joined></row>…</rows>. You choose the root and row names, and several sheets can be exported together, each wrapped in its own element.
My headers have spaces and symbols — is that a problem?
No. Headers are turned into valid XML names: "First Name" becomes First_Name, "2024 Sales" becomes _2024_Sales, and duplicate headers are numbered, so the output is always well-formed.
How are dates and numbers written?
Raw values give plain numbers and ISO 8601 dates (2024-03-15, 14:30:00) that any system can parse. Displayed values write exactly the text Excel shows, formats included.
What is XML Spreadsheet 2003?
An XML format Excel opens directly, keeping every sheet with its numbers, dates and text. Choose it when a system asks for "Excel XML" rather than your own data XML.
Is my spreadsheet stored anywhere?
No. The workbook is read and the XML written here; nothing is sent anywhere and nothing is stored.
What happens to formulas and formatting?
Formulas are written as their calculated values. Formatting, charts and images are not part of data XML.
Good to know: Data XML carries values only — no formatting, charts or images. Password-protected workbooks must have their password removed first.
Put this tool on your website
Free for any blog, class page or help article. Paste one snippet and your visitors can use it right on your page.