Skip to main content
Launch beta — ExcelifyXML just opened! Feedback, a bug, an idea? Tell us — we read everything.

— Documentation

How does it work?

The complete workflow: XML transformation → CSV editing → XML reconstruction, 100% online. No third party, no storage, no install.

Prefer to regenerate the XML right from Excel? See the standalone Excel workbook ↓

Quick start

Drop your XML and check the free preview, then get back an .excelify file (ZIP), edit the CSV in Excel/Numbers/Sheets and rebuild the XML in one click. The credit is only used when you confirm, and reconstructions are unlimited.

Overview

ExcelifyXML analyzes your XML structure, generates an editable CSV + a manifest describing the original structure, and lets you rebuild the XML online after editing.

1
Upload XML

Drop your XML file. A free preview immediately shows the detected row tag and the first rows: change the row tag if needed — the credit is only used when you confirm. ExcelifyXML handles multi-locale, SFCC attributes and nested wrappers.

2
.excelify bundle

You confirm (1 credit) and get a single ZIP file: data.csv (your editable data) and skeleton.json (the XML structure). Unzip it before editing the CSV.

3
Reconstruction

Edit the CSV wherever you want, then drop it with skeleton.json on /reconstruct — online, on any OS. No limit on reconstructions.

No file at hand? Try a sample

Public files, released under an open license by their authors. Drop one on the Upload page: the free preview shows the result before any credit is used.

XML sitemap (sitemaps.org)

The example from the Sitemaps protocol specification: 5 URLs, with their last-modified date, change frequency and priority. The preview points out the lastmod column: opened by double-click, Excel rewrites these dates.

In the preview: one row per url, that is 5 rows and 4 columns.

Download the XML file (0.9 KB)

Example from the Sitemaps protocol 0.90 specification, © Google Inc., Yahoo! Inc. and Microsoft Corporation, released under CC BY-SA 2.5; the file remains under that license. Source · CC BY-SA 2.5 license

PrestaShop demo catalog

The 19 products of PrestaShop's demo store, in English: name, HTML descriptions and friendly URL. The preview also points out empty tags (meta_title…), which the reconstruction doesn't keep.

In the preview: one row per product, that is 19 rows and 10 columns.

Download the XML file (12 KB)

PrestaShop demo data, © PrestaShop and Contributors, published unmodified under OSL 3.0. By downloading this file, you accept that license. Source · OSL 3.0 license

SFCC test catalog

A Salesforce Commerce Cloud test catalog: 5 fictional products (a master with variations, a variant, a set, a bundle and a minimal product) with images, page attributes and custom attributes. The values are test values. The preview points out the upc column: opened by double-click, Excel turns these codes into scientific notation.

In the preview: one row per product, that is 5 rows and 70 columns.

Download the XML file (11 KB)

Test file from the php-demandware-xml library, © 2015 Fusions PIM Limited, under the MIT license. Only the license notice was added, at the top of the file. Source · MIT license

These aren't real exports: the files are there to try the tool. Their authors have no connection with ExcelifyXML.

XML ↔ CSV round-trip

Rebuild your XML after editing directly on the site: drop your edited data.csv with its skeleton.json, get the XML back.

Web reconstruction

On the /reconstruct page, drop your edited data.csv with its skeleton.json (“Separate files”), or the .excelify.zip bundle if you put the edited CSV back into it. The server reads the manifest, finds the CSV's separator and encoding on its own, applies your changes and returns the reconstructed XML. If it sees that your spreadsheet damaged values (characters replaced with “?”, an EAN code turned into scientific notation, a date that changed format), it stops and explains how to fix it. Works on Mac, Linux, Windows, Chromebook. No setup.

Why a manifest?

skeleton.json carries everything a flat CSV can't: root, namespaces, intermediate wrappers, element order, inherited attributes. Without it, the structure would be lost. It's what makes the round-trip faithful. Never edit it.

Unlimited reconstructions

One transformation = 1 credit = 1 manifest. With that manifest, edit your CSV and rebuild the XML as many times as you want, for free. You pay for the transformation, once you've checked the free preview, not for the regeneration.

What reconstruction keeps, and what may change

The rebuilt XML holds the same data in the same structure, with your edits. It isn't always byte-for-byte identical to the original file: here are the known differences.

Kept

  • The root element, its attributes and its namespace declarations (xmlns:g…).
  • The nesting of tags, their prefixes (g:price) and their attributes, in their order, even if you move columns in the spreadsheet, except in the cases listed under “May change”.
  • When the file has a _type column and each type formed one block in it (SFCC catalog or library), each type's rows grouped together, in the original file's order of types, even after a sort or a row added at the bottom of the sheet.
  • Whatever sits outside the CSV rows, in its place before or after them: a catalog or price book header, a feed title, category assignments placed after the products.
  • Each value as you left or edited it, spaces and carriage returns (
) included.
  • CDATA, going by each field's first occurrence: if it is CDATA, all the field's values are written as CDATA.
  • Comments placed before the root element, the ‹!DOCTYPE …› line that refers to an external DTD, and the declaration's standalone attribute.
  • Fields that only hold true / false, even when the spreadsheet rewrote them TRUE / FALSE or VRAI / FAUX.

May change

  • The XML declaration: always present, and always UTF-8 (an ISO-8859-1 or UTF-16 file comes back as UTF-8).
  • The layout: one tag per line, two-space indentation.
  • Empty tags without attributes (<upc/>) aren't kept, nor those that only carry the attribute naming them (‹custom-attribute attribute-id="badge"/›); the preview says so. An empty tag that carries another attribute is kept.
  • Text mixed with tags (“Press ‹b›here‹/b› to continue”): only the tags and their text remain; the preview says so.
  • The order of fields and attributes, when the file's records don't all follow the same one: one order applies to all; the preview says so.
  • The order of same-name tags that alternate with others inside a record (paragraphs and lists in rich text: ‹p›, ‹ul›, ‹p›; key/value pairs): they are grouped by name; the preview says so.
  • The order of attributes on a repeated tag told apart by its attribute-id, xml:lang, locale or site-id: these attributes are written first. In XML, attribute order carries no meaning.
  • Other comments (inside the root element or after it) and processing instructions (‹?xml-stylesheet?›, ‹?mso-application?›) aren't kept.
  • A tag placed between two records, rather than before or after them, is written after the last one.
  • Invisible characters XML forbids, pasted into a cell: a line break from Word or PowerPoint is written as a line break; for the others, the reconstruction stops and points to the cells.
  • What goes beyond your spreadsheet's limits, cut as soon as it opens the CSV: columns beyond 16,384 (Excel, LibreOffice; 1,000 in Numbers), the end of a value beyond 32,767 characters (Excel; 50,000 in Google Sheets). The preview says so, and the reconstruction stops if it finds cut columns or values.
  • How some values are written, never their content: &#233; is written é; a value containing markup (&lt;p&gt;…) becomes CDATA; in a field without CDATA at its first occurrence, a CDATA value without markup is written without it; an empty tag from the original file is written <img/>; single quotes around attributes become double quotes.

CSV File Structure

The generated CSV uses a special naming convention to preserve the XML structure:

@attribute

Direct attribute on element

@category-id → ‹category category-id="..."›
element[lang]

Element with xml:lang attribute

display-name[fr] → ‹display-name xml:lang="fr"›...‹/display-name›
element[id]

Element with attribute-id (custom-attributes)

custom-attribute[showInMenu] → ‹custom-attribute attribute-id="showInMenu"›...
parent.child

Nested element

page-attributes.page-title[x-default] → ‹page-attributes›‹page-title›...
tag[N].sub

Repeated element (0-indexed)

skill[0].@name = 1st ‹skill›, skill[1].@name = 2nd ‹skill›
ancestor.@attr

Attribute of an ancestor element (denormalized context)

company.@country → ‹company country="FR"›‹employees›...
element[id][lang]

Element with attribute-id and xml:lang (translated custom-attribute): one column per attribute and per language

custom-attribute[seo_url][fr-FR] → ‹custom-attribute attribute-id="seo_url" xml:lang="fr-FR"›...
element[id][site]

Element with attribute-id and site-id (site-specific custom-attribute): one column per attribute and per site

custom-attribute[badge][SiteFR] → ‹custom-attribute attribute-id="badge" site-id="SiteFR"›...
element[site]

Field set per site (online-flag, searchable-flag…): one column for the value of all sites, one per site

online-flag → ‹online-flag›, online-flag[SiteUS] → ‹online-flag site-id="SiteUS"›
tag[N].@attr

Repeated element no attribute is enough to identify (e.g. the same custom-attribute twice with the same language and site): indexed, its attributes as columns

custom-attribute[0].@attribute-id = seo_url, custom-attribute[0].@xml:lang = fr, custom-attribute[0] = value
#text

Text carried directly by the row element itself (no child tag)

#text → ‹string name="app_name"›My app‹/string›

Best practices

For the XML reconstruction to work correctly, respect these rules.

What you can do

  • Edit cell values (titles, descriptions, prices...)
  • Add rows to create new XML elements
  • Delete rows to remove elements from the final XML
  • Filter or sort: the XML follows the order of your rows. If the file has a _type column and each type formed one block in it, each type's rows stay together as in the original file: a row added at the bottom joins the rows of its type
  • Move columns: the XML keeps the original file's field order

What you must never do

  • Modify headers (first row) — these are XML paths
  • Open a CSV holding EAN codes, leading zeros or dates by double-click: import it with Data › From Text/CSV instead, those columns as Text
  • Save in a format other than CSV: preferably choose “CSV UTF-8”, which keeps every character
  • Merge cells or add extra sheets
  • Duplicate a column, even as a backup copy: the reconstruction stops if the copies differ

Standalone Excel workbook2 credits

An alternative to the CSV: you get an Excel workbook (.xlsm) holding your data and a "Generate XML" button. Your edits and the XML generation happen in Excel, on your computer, offline — as many times as you like, without coming back to the site. For a very large file, sending an extract is enough: you then add all your rows in Excel.

Standard mode — 1 credit

A CSV and its manifest, to edit in any spreadsheet (Excel, Numbers, Google Sheets, LibreOffice). Reconstruction happens online, free and unlimited. Works everywhere, including where macros are forbidden.

Standalone Excel workbook — 2 credits

A ready-to-use .xlsm workbook: your data written as text (leading zeros, EANs and dates preserved) and a button that regenerates the XML offline. Requires desktop Excel, on Windows or Mac, and allowing this workbook's macro.

In 3 steps

  1. 1Generate the workbook

    On the Excel workbook page, drop your XML and check the free preview, then click “Generate my workbook” (2 credits). The workbook is ready in seconds, with the standard bundle as a fallback.

  2. 2Open it and allow its macro

    Windows: before opening it, right-click the file › Properties › tick "Unblock" › OK, then "Enable Content". Mac: "Enable Macros", at every opening.

  3. 3Edit, then generate the XML

    Work in the "Data" sheet: your data starts on row 3, under the technical names (row 1) and readable labels you can rename (row 2). Then click "Generate XML" in the "How to use" sheet. Do it again whenever you need.

Good habits in the workbook

  • Every cell is formatted as Text: what you type is kept as is (00123 stays 00123).
  • To paste from another file, use Paste Special › Values: a regular paste can bring numbers or dates back.
  • Row 1 (grey): the technical column names. Don't change it: each name tells where the value goes in the XML.
  • Row 2: labels filled in to help you find your way, coloured by the column's role (legend in the workbook). Rename them freely, they change nothing in the XML.
  • Filters don't change the export: every row is exported, hidden rows included. To remove an element from the XML, delete its row.
  • The order of the rows becomes the order of the elements in the XML: sort freely, with the arrows on row 2 (both header rows stay in place). One exception: if the sheet has a _type column (SFCC catalog or library), keep each type's rows together, in their original order, and add a row next to the rows of its type.
  • Don't move columns: the workbook writes each element's fields in the sheet's order, and some formats, such as Salesforce Commerce Cloud's, impose their own.
  • Always save as .xlsm: the .xlsx format removes the macro.
  • Generating clears Excel's undo history (Ctrl+Z): save your work first if needed.

Troubleshooting

"Canonical field order" warning shown

Solution: Informational, not an error. Your XML rows had different field orderings. We used the order of the first row as reference. The reconstructed XML is still 100% valid — field order has no semantic meaning for Google, Akeneo, SFCC or Magento.

"Empty tags not preserved" warning shown

Solution: Your XML contains tags like <sale_price/> or <upc/> (empty, self-closing). In practice this isn't a problem: WooCommerce, PrestaShop, Magento, Akeneo and other import systems treat a missing field as "do not modify the existing value" — the same behavior as an empty tag. If you want to force a clear on import, put "0" or a space in the cell.

"Empty tags named by their attribute" warning shown

Solution: Your XML holds empty tags that carry only the attribute naming their column, for example ‹custom-attribute attribute-id="badge"/›. Their cell is empty, and an empty cell writes nothing: they won't be in the rebuilt XML. If they were meant to clear a value on import, clear it in the destination tool.

Reconstructed XML differs from the original

Solution: Without modifications on your end, the reconstructed XML should be structurally identical. If it isn't (element order, missing attributes), contact support with the original file — that's a bug to fix.

My edits don't show up in the rebuilt XML

Solution: You probably dropped the .excelify.zip as downloaded: a spreadsheet saves data.csv next to the archive, never inside it, so the .zip still holds the original values. The Rebuild page warns you about it. Choose “Separate files” and drop your edited data.csv with skeleton.json.

“This CSV's columns don't match this skeleton.json”

Solution: The CSV and the skeleton.json you dropped don't come from the same export, which happens quickly when several exports pile up in Downloads (data.csv, data (1).csv…). Take both files from the same bundle. Adding or removing columns is still allowed.

“Filled cells won't be in the XML”

Solution: Reconstruction stops when filled cells can't be written: a column added for a language, a site or a numbered element the original file doesn't have (custom-attribute[seo_url][de-DE], image-group[3]), a working column with a free-form name ("To check"), a value typed on a row of another type (_type column), values with no header (typed next to the table, or under a header that was cleared: “column with no header, column F”), or a column twice whose copies differ (a backup copy: only the leftmost would be written). The page lists the columns and rows. A working column can stay: rebuild anyway. For a new language or site, add it to an element of the original XML, then transform that file again. Keep a single column per name, and a header above every filled column.

“Invisible characters can't go into the XML”

Solution: A cell holds a control character (U+0001, U+001B…), invisible in the spreadsheet, often brought by a copy and paste from another program or a web page. XML forbids it: an import would refuse the whole file. The page shows the column, the rows and the character's code. Rebuild anyway to remove them (the rest of the text is kept), or retype these cells. Line breaks pasted from Word or PowerPoint don't stop the rebuild: they are written as line breaks.

My XML file is not UTF-8 (UTF-16, ISO-8859-1, Windows-1250, Shift_JIS…)

Solution: No problem: ExcelifyXML auto-detects encoding (BOM, <?xml encoding="..."?> declaration or the file's content) and converts to UTF-8 before processing. It also reads the declared Central European, Greek, Turkish, Baltic, Cyrillic, Japanese, Chinese and Korean encodings (Windows-1250 to 1258, ISO-8859, Shift_JIS, EUC-JP, GBK, GB18030, Big5, EUC-KR…), under their other names too (latin1, cp1252, cp932, UHC…). Even a file whose first line announces another encoding while it was saved as UTF-8, or announces UTF-8 while it is Windows-1252, is read correctly. A declared encoding ExcelifyXML can't read exactly (Mac Central European, EBCDIC…) is refused without using a credit: save the file as UTF-8.

My file exceeds 4 MB

Solution: The free plan accepts files up to 4 MB; the VIP plan up to 30 MB (secure direct upload, nothing retained). Beyond 30 MB, contact us for a custom Enterprise pipeline. Whatever its size, a file can hold up to 1.5 million XML elements, nested 100 levels deep at most: beyond that, split it into several files.

"A second root element starts after the end of the first one"

Solution: Your file holds two XML documents joined end to end (two pages of an export, two concatenated files), while an XML file has a single root element. Transform each part separately, or put them all inside one root element. No credit is used: the file is refused rather than silently leaving out everything after the first root.

My file starts with a ‹!DOCTYPE …› line (cXML, ONIX, BMEcat…)

Solution: It is accepted when it only refers to an external DTD, for example ‹!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.069/cXML.dtd"›. ExcelifyXML never downloads that DTD: it keeps the line in the skeleton.json file and writes it back in its place in the rebuilt XML. A declaration that defines entities or elements itself, between brackets [ … ], is refused for the service's security, without using a credit: remove it, then put it back in the rebuilt XML. If it defines entities the file uses (&name;), first replace each one with the character itself or its numeric reference: without the declaration, they would be kept as text. Entities only the DTD defines (&nbsp;, &eacute;…) are refused too, with their line: replace them with their numeric reference (&#160;, &#233;) or with the character itself. Apple property lists (plist files) are still refused, without using a credit: each key is tied to its value only by their order, which the CSV doesn't keep.

The CSV opens as a single column in my spreadsheet

Solution: Your spreadsheet expects the other separator (French Excel = semicolon, English = comma). Pick the right one under “Advanced options”, below the preview on the Upload page, or fix the open file via Data → Text to Columns → Delimited in Excel. Reconstruction finds the separator on its own, whatever it is.

"Text mixed with tags" warning shown

Solution: Some tags in your XML contain text interleaved with other tags (e.g. ‹string›Tap ‹b›here‹/b› to continue‹/string›). A CSV can't represent that mix: nested tags (here "b") become columns, but the surrounding text ("Tap", "to continue") is not captured and will be missing from the rebuilt XML. Edit those particular values directly in the original XML file; every other row can be edited in the CSV as usual.

"Several elements that no column tells apart" or "rows sit in different elements"

Solution: Your file holds several lists (for instance several SFCC price books or warehouses) and the chosen rows don't say which list they belong to: the rebuilt XML would mix them up. Transform each list as a separate file: you keep one row per price or per product. You can also choose, in the preview, under “Not the right row?”, the element that groups each list (for instance pricebook): each list then becomes a single row of numbered columns, which soon goes beyond the 16,384 columns Excel keeps (the preview says so). No credit is used in that case.

“?” in place of some characters, or “é” turned into “Ž”

Solution: Excel's classic “CSV” format (like LibreOffice on Windows or Excel on the web) can't write every character: Arabic, Chinese, Greek, Cyrillic… become “?” when the file is saved, and even accents when the computer is set to another language (Polish, Greek, Japanese…). At reconstruction, ExcelifyXML compares the file's “?” with those of your original XML and stops when characters were replaced. It doesn't catch them all: a word typed in another alphabet becomes “????”, a lone accent in a very small file goes unnoticed. The safest: save as “CSV UTF-8 (Comma delimited)” (Excel on Windows) or “CSV UTF-8” (Excel for Mac); Google Sheets and Numbers already save in UTF-8. Other encodings (Mac Roman, Windows in another language) are recognized automatically.

Excel changed my EAN codes, leading zeros or dates

Solution: Opened by double-click, a CSV is read by Excel as numbers and dates: “00123” becomes “123”, an EAN becomes “3.61235E+12” (its last digits are lost), “1-2” becomes “2-Jan”. Open the CSV with Data › From Text/CSV instead, then “Transform Data”, giving these columns the Text type. The transformation screen names the columns at stake, and the reconstruction stops if a code turned into scientific notation, a date appeared in a column that had none or a date changed format (“2026-09-01” became “9/1/2026”).

“Your spreadsheet cut part of the file”: too many columns, or values too long

Solution: A spreadsheet keeps a limited number of columns: 16,384 in Excel and LibreOffice, 1,000 in Numbers. Excel also keeps 32,767 characters per cell at most (Google Sheets 50,000). Whatever goes beyond is cut as soon as the CSV is opened, even without any change: a product with thousands of variants, several warehouses or price lists in numbered columns, a very long HTML description. The preview and the transformation screen point it out, and the reconstruction stops if the CSV comes back cut; “Rebuild anyway” writes the XML without what was cut. Too many columns: in the preview, under “Not the right row?”, choose a row tag that gives narrower rows (for instance variant rather than product), or split the XML file (one list per file). Values too long: edit them in the original XML file rather than in the spreadsheet.

Standalone Excel workbook

"Microsoft has blocked macros from running because the source of this file is untrusted"

Solution: Red "SECURITY RISK" banner with no button to enable anything: that's Windows' protection for downloaded files that contain macros (it sometimes shows right after "Protected View › Enable Editing"). Close the workbook, then in File Explorer: right-click the file › Properties › General tab › tick "Unblock" › OK. Reopen it and click "Enable Content" in the yellow bar. Don't change Excel's security settings: unblocking this one file is enough. No "Unblock" checkbox? If the workbook is on a network share, copy it to a folder on your computer and open the copy; otherwise your organization has hidden it: check with your IT department. Detailed guide

The button says "Cannot run the macro" or does nothing

Solution: Excel hasn't allowed this workbook's macro yet, hence the message "Cannot run the macro… The macro may not be available in this workbook or all macros may be disabled". On Windows, click "Enable Content" in the yellow bar (first "Enable Editing" if the workbook is in Protected View). On Mac, Excel asks at every opening "Do you want to disable macros before opening the file?": close the workbook, reopen it and click "Enable Macros". No bar and no question? Excel is set to disable macros without warning: on Windows, File › Options › Trust Center › Trust Center Settings › Macro Settings; on Mac, Excel › Preferences (or Settings) › Security. Choose the "… with notification" option, the default — don't enable all macros. If these options are greyed out, your organization manages them. Finally, a workbook saved again as .xlsx has lost its macro: start again from the original .xlsm file.

Mac: the macro asks you to choose a format ending in .xml

Solution: macOS sandboxes apps: Excel may only write the file chosen in the save window, which offers "Excel Workbook (.xlsx)" by default. Under "File Format" (at the bottom of the window), choose "Excel 2004 XML Spreadsheet (.xml)" (any format ending in .xml will do: the macro writes the content itself), then Save. If macOS still refuses to write, pick another folder (Downloads, for instance).

I use Excel for the web, Teams, Google Sheets, Numbers or Excel on iPad

Solution: These apps don't run macros: the button won't work there (Excel on iPad says so: "This version of Microsoft Excel can't run VBA macros"). Workbook opened from OneDrive, SharePoint or Teams in the browser? Choose "Open in Desktop App". Otherwise, use the standard bundle (.excelify.zip) offered when you generated the workbook: unzip it, edit data.csv in your spreadsheet, then rebuild the XML online with skeleton.json, for free.

My company blocks macros

Solution: Some organizations restrict macros: a "Your administrator has restricted the use of macros in your organization" banner, greyed-out security settings, no "Unblock" checkbox, or macros allowed only when digitally signed — ours isn't signed yet. Don't try to work around these rules: use the standard bundle, which rebuilds online without macros, or ask your IT department to review the workbook (they can, for instance, set up a trusted location reserved for these files). The What the macro does page gives them the source code and the details of its behavior.

My antivirus quarantined the workbook

Solution: Corporate antivirus software looks closely at workbooks that contain macros. Ours uses none of the functions usually associated with malicious macros: no network connection, no program launch, no automatic start. If the workbook stays blocked, don't force it: write to support@excelifyxml.com with the name of the antivirus, and use the standard bundle meanwhile.

My email won't send the .xlsm to a colleague

Solution: Many corporate mail systems block attachments that contain macros. Share the workbook through your usual file space (OneDrive, SharePoint, Teams…), or let your colleague generate their own workbook. A workbook received by email or downloaded from Teams is blocked like any download: your colleague will need to unblock it too (right-click › Properties › "Unblock").

The macro stops on a cell with an error

Solution: A cell in the "Data" sheet holds an Excel error (#N/A, #VALUE!, #REF!…), often coming from a formula. The macro gives its address: fix the formula or replace it with its value (Paste Special › Values), then run again.

My numbers or dates changed format

Solution: The workbook ships as text only, but pasting or typing into a reformatted cell can bring numbers or dates back. The macro converts them to text predictably (dates as YYYY-MM-DD, numbers with a decimal point) and points out the first cells concerned. To avoid it: Paste Special › Values, and don't change the cells' format.

The XML doesn't have the expected number of elements

Solution: Every row of the "Data" sheet becomes an element, including rows hidden by a filter; only completely empty rows are skipped. Check that your new rows sit under both header rows, and that no rows holding only spaces or copy-paste leftovers remain at the end of the table.

The macro says the labels row has been moved

Solution: A sort took row 2 along with your data, for instance after the filters were turned off, or when sorting a selection of whole columns. The message tells where it is now: cut that row, right-click row 2 › Insert Cut Cells, then run again. To sort afterwards, use the arrows on row 2: both header rows stay in place.

An unexpected column shows up in the XML

Solution: A technical name on row 1 was probably changed: the macro treats it as a new tag and points it out at the end of the generation. Restore the original name (you'll find it on the first line of the standard bundle's CSV). To give a column a readable name, change its label on row 2 instead: it changes nothing in the XML.

My file exceeds my plan's maximum size

Solution: Send an extract: a few rows that contain at least one example of every field and every row type you use (for an SFCC catalog: categories and products, every language). The workbook takes its structure from this extract. Then paste all your rows into the “Data” sheet (Paste Special › Values): the XML is generated in Excel, on your computer, with no size limit on our side. Only Excel's limits apply: about a million rows, 16,384 columns and 32,767 characters per cell. Count a few seconds for tens of thousands of rows, more on a Mac.

The workbook is refused for a file that starts with ‹!DOCTYPE …›

Solution: The Excel workbook can't write this line back yet (cXML, ONIX, BMEcat…): the preview says so before any credit is used. Use the standard mode for this file: it keeps the line and writes it back in the rebuilt XML.

Generating takes a while on a large file

Solution: With tens of thousands of rows, allow from a few seconds to a few minutes depending on the computer (longer on Mac). Progress shows in the status bar at the bottom of the Excel window: let Excel work without clicking in the workbook.

Excel offers to repair the workbook when opening it

Solution: This shouldn't happen. Write to support@excelifyxml.com with your Excel version; meanwhile, use the standard bundle. If the workbook is at fault, we credit the generation back.

Still stuck?

Our team responds within 24-48h. You can also try another file in the meantime.