Rows XML from Orders
- Input
- 17,714-byte workbook with merged title row, two order records, dates, a percentage, and a second sheet.
- Output
- 610-byte XML began
<rows><row><Q3 Orders>order_id</Q3 Orders>and later wrote<column_4>0.375</column_4>.
XLSX to XML writes row-oriented XML from worksheet cells, so the output is data XML and not an Office Open XML workbook package.
From real runs
| Element | Result | What happens |
|---|---|---|
| Root element | Changed | The serializer wrapped output in <rows> and wrote one <row> element for each parsed worksheet row. |
| Column names | Changed | Worksheet headers became XML element names, including the title-derived <Q3 Orders> element seen in the API output. |
| Escaping | Kept | The apostrophe in Bo O'Connor was serialized as Bo O'Connor, which keeps the text valid inside XML content. |
| Dates | Changed | Excel date values became ISO timestamp text, for example <column_3>2026-09-10T00:00:00.000Z</column_3>. |
| Percent display | Changed | Percent formatting was not retained, so the underlying value 0.375 was written inside the XML element. |
| Multiple sheets | Changed | The second worksheet was not written to XML in the single-table API output, and the response carried a warning about this flattening. |
| Workbook packaging | Lost | Original OOXML parts for styles, formulas, relationships, shared strings, and workbook metadata are not represented in the row XML. |
The serializer wrapped output in <rows> and wrote one <row> element for each parsed worksheet row.
Worksheet headers became XML element names, including the title-derived <Q3 Orders> element seen in the API output.
The apostrophe in Bo O'Connor was serialized as Bo O'Connor, which keeps the text valid inside XML content.
Excel date values became ISO timestamp text, for example <column_3>2026-09-10T00:00:00.000Z</column_3>.
Percent formatting was not retained, so the underlying value 0.375 was written inside the XML element.
The second worksheet was not written to XML in the single-table API output, and the response carried a warning about this flattening.
Original OOXML parts for styles, formulas, relationships, shared strings, and workbook metadata are not represented in the row XML.
<rows><row><Q3 Orders>order_id</Q3 Orders> and later wrote <column_4>0.375</column_4>.<column_2>Bo O'Connor</column_2>, confirming text escaping in element content.We converted our Excel XLSX sample (17 KB) with Table engine on 2026-09-11. It took 1 ms and produced a 694 B XML file, 96% smaller than the input. The engine raised 2 warnings, listed below.
Input · sample.xlsx · 17 KB
Workbook with 2 sheets (Pipeline, Notes); first sheet 5 rows, 25 cells, 0 formulas
Output · sample.xml · 694 B
25 elements, root <rows>
First lines of the output
<rows>
<row>
<company>Northwind Traders</company>
<stage>Proposal</stage>
<arr>48000</arr>
<owner>R. Ayers</owner>
<close_date>2026-10-14</close_date>
</row>
<row>
<company>Contoso Ltd</company>
<stage>Negotiation</stage>
<arr>120000</arr>
<owner>P. Ng</owner>
<close_date>2026-09-30</close_date>
</row>
<row>
<company>Fabrikam</company>
<stage>Qualified</stage>
…Python pandas
python - <<'PY'
import pandas as pd
df = pd.read_excel("in.xlsx", sheet_name="Orders", header=1)
df.to_xml("out.xml", index=False, root_name="rows", row_name="row")
PYSanitize column names before writing XML if the workbook headers contain spaces or punctuation.
The HTTP API and the MCP server run the exact engine this page uses (Table engine); the response carries the same warnings the web converter shows. Check support first with GET /api/v1/pairs?from=xlsx&to=xml.
curl -X POST https://filetypeconverters.com/api/v1/convert \
-H "Authorization: Bearer $FTC_API_KEY" \
-F "file=@input.xlsx" -F "from=xlsx" -F "to=xml" \
-F 'options={"sheet":""}' \
--output output.xml| Key | Applies to | Type | Default |
|---|---|---|---|
| sheet | Reading Excel XLSX | string | |
| headerRowIndex | Reading Excel XLSX | number | 0 |
| dateHandling | Reading Excel XLSX | date · string | date |
| delimiter | Writing XML | string | , |
| newline | Writing XML | · | |
| sheetName | Writing XML | string | |
| dialect | Writing XML | postgres · mysql · sqlite | postgres |
| tableName | Writing XML | string | data |
| createTable | Writing XML | boolean | true |
/convert/xlsx-to-json when the receiving system expects object records instead of XML elements.No. An XLSX file is already an OOXML zip package, but this converter writes simple row data XML. It does not expose workbook internals such as styles.xml or sharedStrings.xml.
Headers become XML element names. If your first row has spaces or a report title, use headerRowIndex or clean the headers before relying on the XML.
Single-table XML output writes one selected table. Our default API run warned about multiple sheets and omitted the Lookups worksheet.