araç köşesi

Convert Excel (XLSX) to XML

Turn each spreadsheet row into a tagged XML record

Choose your Excel filesTap or click the box — a file picker opens. You can also drag a file onto it..xlsx, .xlsm, .xls and .ods; one .xml file downloads per workbook

Your files stay with you. Conversion happens inside the browser; no file is ever uploaded to a server.

How it works

Tap or click the box and pick your Excel file. If the first row holds column headers (Name, Amount, Date), keep the default: every header becomes an XML element name and every row below it becomes one <record> element. A customer list with three columns and 200 rows, for example, becomes a single XML file holding 200 <record> elements, each with <Name>, <Phone> and <City> inside. A header with a space or punctuation is rewritten with underscores ("Date of Birth" becomes Date_of_Birth), a header starting with a digit gets a leading underscore, and the result line tells you how many headers were changed. Date cells are written year-month-day (2023-03-15), numbers with a decimal point (1250.5) and TRUE/FALSE cells as true/false, so the program reading the XML needs no extra settings. If the workbook has more than one sheet, the "All sheets" option puts them all in one file, each under its own <sheet> element.

This tool is also known as excel to xml, xlsx to xml converter, convert excel to xml file, excel to xml online, xls to xml, spreadsheet to xml.

What is XML?

XML is a text format that writes each value between an opening and a closing tag: <Name>Alice</Name>. It was designed for moving data between programs, and e-invoicing systems, bank transfer formats, accounting packages and many corporate back-ends still ask for it. You can open an XML file in Notepad and read it, but its real strength is precision: every value carries the name of its field in its own tag, so there is no argument about column order or about which delimiter was used. This tool turns each row of your spreadsheet into one such tagged record.

What is Element name?

An element name is the name of the tag around a value: in <Amount>1250.5</Amount> the element name is Amount. XML forbids spaces, most punctuation and quotes in a name, and a name may not begin with a digit or with the letters xml. Rather than dropping a header that breaks those rules, this tool repairs it: spaces and symbols become underscores, a leading digit gets an underscore in front of it, a name starting with xml is prefixed the same way, and when two columns share a header the second one gets a _2 suffix. The output therefore opens in any XML parser, and the result line lists which headers were changed.

What is the difference between XML and CSV?

A CSV is a set of plain lines with the cells separated by commas or semicolons: light, and Excel opens it directly, but a value is identified only by its position, and the delimiter, the quoting and the decimal mark change from country to country and can silently scramble the file. In XML every value sits inside its own named tag, column order does not matter, nested structures such as several sheets inside one document are possible, and the file describes itself. The price is size: the same table is several times longer as XML. Hand the table to a person or to Excel as CSV; hand it to a program or an institution as XML.

Why do dates and numbers not look the way they do in Excel?

A program, not a person, will read the XML, so this tool keeps the notation fixed. A date cell that shows 03/15/2023 in Excel is written as 2023-03-15 (ISO 8601), and a cell with a time becomes 2023-03-15T14:30:00. A number that Excel displays as $1,250.50 is written as 1250.5 — decimal point, no thousands separator, no currency symbol; a percentage cell shows 15% but is written as 0.15, because that is the value stored in the cell. TRUE/FALSE cells become true/false, and error cells such as #N/A are written with the text Excel displays.

That is a deliberate choice: programs and databases read this notation without any configuration, while local notation (decimal commas, day-first dates) differs by country and gets misread on the other side. If you need the table exported the way it looks on screen, that is the job of the XLSX to CSV page on this site, where date and number notation can be chosen.

How are empty cells, blank rows and multiple sheets handled?

An empty cell is not skipped; it is written as an empty element (<Phone></Phone>), so every record has the same number of fields and a parser finds the same structure in each one. Completely blank rows at the bottom of the table (rows that are formatted but hold nothing can survive in the file) are dropped; a blank row in the middle stays as an empty record — deleting it in Excel and converting again is the cleanest fix. Column widths, cell colours and formulas do not reach the XML; a formula cell contributes its last calculated value.

With "All sheets" selected, each sheet gets its own <sheet name="January"> element under the root and its records sit inside it; the header row of every sheet is read separately, so sheets may have different columns. A sheet with no data produces no element. The root and row element names can be changed: if the receiving system expects <customers> containing <customer>, type those two names in the boxes — they pass through the same XML naming rule.

Frequently asked questions

Does it produce a specific XML schema (UBL, SEPA, e-invoice)?

No. This tool writes a flat, regular structure: a root element, one record element per row, one field element per column. Formats such as UBL invoices or SEPA payment files require particular element names, nesting and namespaces, and only software written for that schema can produce them. For simple list-shaped schemas, though, you can get usable output by setting the root and row names to what the recipient expects and writing the schema's field names in your header row.

Why were my headers changed?

XML element names cannot contain spaces, quotes or brackets and cannot start with a digit. Instead of discarding such a header the tool adapts it: "Unit Price (USD)" becomes Unit_Price__USD_, and "2024" becomes _2024. Accented letters such as é or ñ are left as they are, because XML allows them in names. The result line reports how many headers changed and shows the first three as old → new; if you keep headers plain in Excel, nothing is touched.

Can I convert an old .xls file or a LibreOffice .ods file?

Yes. Besides .xlsx and .xlsm, the Excel 97-2003 .xls format and the .ods format of LibreOffice and OpenOffice are read. A password-protected workbook cannot be opened: remove the password in Excel and save it again. To turn a CSV into XML, open it in Excel and save it as .xlsx first, or run the CSV to JSON and JSON to XML pages one after the other.

Is my file uploaded anywhere?

No. The workbook is opened, its cells are read and the XML is written by code running in your browser; no copy is sent to a server. That matters for customer lists, payroll tables and invoice lines. Once the page has loaded, the conversion also works with the internet switched off.