AnyFormat

00 XLS → CSV

XLS to CSV

The legacy binary Excel format, read in the browser.

Drop files or a folder here

or choose from your device · paste with ⌘V / Ctrl+V

.xls .xlsx

03Options 7

All-sheets produces an object keyed by sheet name rather than a flat list.

Off omits the key entirely when a cell is blank, rather than writing an empty string.

Flattening turns {"address":{"city":"Oslo"}} into an address.city column.

  • No upload The conversion runs in this tab. Your file never travels — not to us, and not to the advertising.
  • No sign-up, no email, no daily cap There is no account system to sign up to.
  • No size limit we invented Only your device's memory — about ~2 GB on a desktop browser, ~400 MB on a phone.
  • Turn your Wi-Fi off and convert anyway The conversion needs nothing but this page. Ads will not load without a connection; your file will still convert. That is the whole claim, and it takes five seconds to check.

Drop a legacy .xls file — the binary format Excel used up to 2003. Most files still in that format are exports from line-of-business systems that were never updated, which is also why they tend to contain data nobody wants to upload.

How XLS differs from XLSX

XLS is a binary OLE compound document; XLSX is a ZIP of XML. XLS caps out at 65,536 rows and 256 columns, has a smaller formatting model, and stores text in a shared string table that can use several codepages in one file. All of that is handled here, including the codepage detection that makes accented characters come out right rather than as mojibake.

Files that are not really XLS

A great many ".xls" files in the wild are not XLS at all. Systems that generate reports very often emit an HTML table or a tab-separated file and name it .xls, because Excel opens it anyway. If that is what you have, this tool tells you so explicitly instead of producing an empty result — and the fix is usually to use the CSV tool directly.

What a spreadsheet cannot bring with it

CSV holds values and nothing else. Formulas are written as their last calculated result, so a sheet whose numbers were never recalculated exports whatever was cached the last time it was opened. Number formatting is gone, which is why a currency column arrives as bare numbers and a percentage arrives as 0.075 rather than 7.5%. Merged cells become a value in the first position and blanks after it, and only one sheet can be exported at a time, because there is no second sheet in a CSV to put the rest in.

Other names for this

Also searched as “old excel to csv”, “convert xls to csv”.

Questions

It says my file is plain text, not a spreadsheet.
Then it genuinely is. Some reporting systems emit HTML or TSV with an .xls extension. Open it in a text editor to see which, then use the matching tool.
Accented characters look wrong.
They should not — the codepage recorded in the file is honoured. If they still look wrong, the file itself declares the wrong codepage, which happens with some older exporters.
Is my data uploaded anywhere?
No. The conversion runs as JavaScript inside this tab. Open your browser's Network panel and convert something — you will see no request carrying your data, because there is no server to send it to. You can also turn your Wi-Fi off and convert anyway.