Convert XLS to XLSX

Converting XLS to XLSX moves a workbook out of the 1997 binary Excel format and into the ZIP-and-XML container, which raises the sheet from 65,536 rows and 256 columns to 1,048,576 and 16,384. Formulas keep calculating; macros do not come with it, because an XLSX cannot hold any.

  • Where it runs On our server, because a browser cannot run the software this needs.
  • Rebuilt XLSX works differently from an XLS, so this is not the gradual degradation a lossy codec applies. What XLSX can express is reproduced faithfully; what it has no equivalent for does not survive at all.
  • File size limit Up to 25 MB per file, free, without an account.
  • Worth knowing Formatting survives; macros, embedded objects and revision history usually do not.

Up to 100 files at once. Mixed formats are fine.

The 65,536-row wall, and how you find out about it

The binary Excel format allows exactly 65,536 rows on a sheet, a number chosen when a spreadsheet lived in memory measured in megabytes. Nobody encounters it by counting. They encounter it when a database export, a transaction log or a survey extract arrives and quietly stops, and the last row is not the last record.

That is a genuinely dangerous failure, because a truncated sheet looks entirely normal. The totals are wrong and nothing says so. If a file you are reconciling ends at row 65,536, treat that as a format limit until proved otherwise, re-export into a container that can hold the data, and check the count rather than the appearance. Converting the truncated file does not bring the missing rows back — they were never written. It removes the wall so that the next export lands complete, which is why the order is convert, re-export, reconcile, and not the other way round.

Two hundred and fifty-six columns is the other ceiling

The same generation capped a sheet at 256 columns, ending at IV. That was ample for a ledger and is not ample for the wide tables modern systems produce: a survey with one column per question, a monthly grid spanning several years, an analytics export with a field for every attribute.

XLSX allows 16,384 columns, out to XFD. In practice a table that genuinely needs several hundred columns is telling you something about its shape rather than its format, and is often better held long rather than wide. But the conversion removes the immediate obstacle, and reshaping the data is a decision that can be made afterwards rather than under deadline. The column limit also fails less obviously than the row limit, because a table that runs off the right-hand edge looks like a table that ends there. Nobody scrolls to column IV to check whether anything was waiting behind it.

The "too many different cell formats" error explained

A binary workbook can hold roughly four thousand distinct cell format combinations, where a combination is one particular mix of font, size, colour, border, fill and number format. Formatting applied a column at a time, copied between sheets and layered over years accumulates these quietly, and the workbook eventually refuses to accept another one.

The message is confusing because the workbook does not look elaborately formatted; the styles are mostly duplicates that differ in one attribute. XLSX raises the ceiling to around sixty-four thousand, which makes the error go away. It is still worth clearing unused formatting afterwards, because a workbook that reached four thousand by accident will reach sixty-four thousand the same way. The usual culprit is formatting applied to whole columns or whole sheets rather than to the used range, repeated across a dozen sheets by people copying each other’s work. Selecting the genuinely empty region and clearing its formats removes most of the accumulation in one action.

Fifty-six colours, and three conditional formatting rules

The old format carries a palette of 56 colours for the whole workbook. Anything outside it is snapped to the nearest entry, which is why a carefully chosen corporate shade turns into an approximation of itself and why two different greens sometimes become the same green.

Conditional formatting was limited to three rules per range in the same generation, which is the constraint that turns a simple traffic-light scheme into a nest of nested IF statements in a helper column. Converting removes both limits at once. The colours already flattened in the old file do not come back, but everything applied from here on behaves as expected. That is the pattern for every limit on this page and it is worth stating once: the conversion lifts the ceiling, it does not restore what hit the ceiling. Data lost to truncation, colours snapped to a palette and rules that were never added are all gone for good.

Macros do not survive, and that is by design

This is the one loss that catches people, and it is not a shortcoming of the converter. Microsoft deliberately separated macro-bearing workbooks into their own extension when the format changed, so a file called .xlsx is guaranteed to contain no executable code. Sending one is therefore a stronger statement than sending a binary workbook that might contain anything.

If the automation is the point of the file — a button that builds a report, a routine that validates entries on save — this conversion gives you the data and not the behaviour. That workbook needs the macro-enabled format instead, and moving it is a decision about what the file is for rather than about which container it sits in. In an archive migration this is usually a small minority of files and worth separating out before the batch runs, so that nobody discovers three months later that the quarterly reporting tool converted successfully and stopped working.

Formulas, names and references come through unchanged

The calculation model did not change between the two generations, so formulas are carried across as formulas: the dependency graph is intact, named ranges continue to resolve, cross-sheet references still point where they pointed, and recalculating produces the same answers as before.

What is worth checking afterwards is anything that reached outside the file — a link to another workbook on a drive letter that no longer exists, a query against a database nobody has credentials for any more. Those were already broken; the conversion makes it the moment you notice, which is a good moment for it to happen. Volatile functions are the other thing to look at once. A sheet that has not been recalculated since 2011 may be showing cached results, and opening the converted file recalculates it — so a figure that changes is not the conversion being wrong, it is the old one having been stale.

The file usually gets smaller as well

Because XLSX is a ZIP archive of XML parts, the content is compressed on the way in, where the binary format stores its records as they are. Workbooks that are mostly numbers and formulas commonly come out several times smaller, which is noticeable across a shared drive full of them.

Embedded images do not compress further, since a JPEG is already compressed, so an image-heavy workbook stays roughly the same size. If a spreadsheet is large because somebody pasted screenshots into it, the conversion will not help and the screenshots are the thing to address.

Systems that refuse a .xls upload

The other common route to this page is an import screen. Accounting platforms, procurement portals, payroll systems and analytics tools have steadily narrowed to the modern format, partly for the limits described above and partly because the binary formats were a delivery mechanism for malicious files for years.

That last reason is why the answer is to convert rather than to ask for an exception. A file arriving as .xlsx carries no macro project, which is precisely why their intake rules were written that way, and no amount of explaining that your spreadsheet is harmless will change the upload form.

How the XLS is converted, and where

Reading a 1990s binary spreadsheet takes a full office engine, so this pair runs on a server rather than in your browser. The file goes over an encrypted connection to a container that runs LibreOffice headless and contains nothing else; the page says so rather than leaving you to assume it happened locally.

The container is not permitted to open outbound connections. Every job gets its own scratch directory and its own LibreOffice profile, and the directory is deleted as soon as the job ends, successfully or not. Anything still running after sixty seconds is terminated, because a damaged binary file is more likely to make the engine hang than to produce an error. The free limit is 25 MB per file.

When the data should leave the spreadsheet entirely

If the old file was truncated at 65,536 rows, the honest question is not which spreadsheet format to use but whether a spreadsheet is still the right home. A million rows opens slowly, recalculates slowly and is edited by hand at everyone’s peril.

At that size a columnar or database format is the better destination: CSV for an import, Parquet for analysis, SQL for a load into a real table. Convert to XLSX when a person will keep working in the grid, and treat the row count as the signal that they should not have to.

How to convert an XLS file to XLSX

  1. Drop the XLS file, or the whole folder of them, onto this page.
  2. LibreOffice reads the binary workbook and writes an XLSX.
  3. Open it and check the row count against the source of the data.

XLS and XLSX: the limits that changed in 2007

XLS compared with XLSX
XLSXLSX
Full nameExcel 97-2003 WorkbookExcel Workbook
File extension.xls.xlsx
Media typeapplication/vnd.ms-excelapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
First published19872007
Published byMicrosoftMicrosoft
SpecificationECMA-376
LicensingPublished, not standardisedOpen standard
Standing todayLegacy, still read everywhereCurrent
Opens in a browserNo browserNo browser
Considered insteadCSVCSV, ODS, Parquet

What survives

Both XLS and XLSX hold several pages, so a multi-page document stays one file.

Opening the result

XLS dates from 1987 and is largely superseded. XLSX is what current software writes, so the conversion is as much about staying readable as about the file itself.

Microsoft Excel and LibreOffice Calc read both XLS and XLSX, so there is a way to check the result against the original without a second tool.

What each format is for

XLSX comes from Microsoft and dates from 2007, specified as ECMA-376. Microsoft Excel, LibreOffice Calc and Google Sheets all read it.

XLS was published in 1987 and XLSX in 2007. The older one is generally the safer file to hand to somebody; the newer one usually does the job in fewer bytes.

XLS to XLSX: limits, macros and file size

Are my XLS files uploaded anywhere?

Yes — this conversion needs software that cannot run in a browser, so the file is uploaded over an encrypted connection. It is deleted as soon as the job finishes, and the result is sent straight back to you without being stored. The work is done by LibreOffice, the full office suite, running headless.

How many rows can an XLS hold?

65,536, with 256 columns. XLSX raises those to 1,048,576 rows and 16,384 columns, which is why an export that arrives truncated at exactly 65,536 lines is a format problem rather than a data problem.

Why does Excel say there are too many different cell formats?

The binary format allows about four thousand distinct cell format combinations in one workbook. Every unique mix of font, size, border, fill and number format counts as one. XLSX raises the ceiling to roughly sixty-four thousand, which is why the error disappears after converting.

Do my macros come across?

No, and not because of the converter: a .xlsx cannot contain macros at all. Microsoft split macro-bearing workbooks into the separate .xlsm extension deliberately, so a file ending .xlsx is guaranteed to hold no code.

Will the formulas still calculate?

Yes. Formulas are stored as expressions in both formats and are carried across as expressions, so the workbook recalculates exactly as it did. Values, names and references are unchanged.

Will the file get smaller?

Usually, often substantially. XLSX is a ZIP of XML parts, so the sheet data compresses; the old binary format stores its records uncompressed. Workbooks that are mostly numbers see the biggest reduction.

Can I convert a whole folder of old spreadsheets?

Yes. Drop the directory rather than the files individually; each is converted in turn, keeps its name with the extension changed, and the set is returned as one ZIP.

More about these formats