piapia123
en

Excel Converter

Format

Everything runs locally in your browser — nothing is uploaded

Drop a file here, or click to choose

One file · processed entirely on your device

The file is read inside your browser only — nothing is uploaded. It keeps working offline.

Drop in a spreadsheet and convert it to CSV, JSON, a Markdown table or an HTML table. The file is never uploaded — an xlsx is a ZIP full of XML, and a browser can read it fine. ⚠️ You get the cell values, not the whole spreadsheet. This is what decides what it is for: · Formulas yield their cached result (whatever Excel last computed), not the formula. So in a programmatically generated xlsx that Excel has never opened, formula cells may hold nothing at all — reading them gives empty. That is not a defect; the value genuinely is not in the file. · Styles (fonts, colours, borders, number formats) are all lost — none of the four target formats can express them. · Merged cells hold a value only in the top-left corner. A heading that visually spans three columns is one cell plus two empties in the data, and that is the most common surprise when exporting a spreadsheet. · Comments, conditional formatting, data validation, charts, images and pivot tables are all lost. So this suits getting the data out (into a database, a script, another format), not converting one spreadsheet into another — the latter needs the styles preserved, which means Excel’s own “Save As”. ⚠️ Two easy traps: dates in Excel are really numbers, and they are decoded as dates and emitted in UTC here (using local time shifts them a day for anyone east of Greenwich); and multiple sheets are converted independently, never merged.

Features

  • Reads .xlsx, .xls, .xlsm, .xlsb, .xlt, .xltx, .xltm, .ods, .csv and .tsv (templates included)
  • Four outputs: CSV, JSON, Markdown table, HTML table
  • ⚠️ The “you get the values, not the spreadsheet” note is in the result, not buried in the FAQ
  • ⚠️ Dates are emitted in UTC, so they never shift by a day
  • ⚠️ A UTF-8 CSV with no BOM does not come out as mojibake (the bytes are validated as UTF-8 before deciding the encoding)
  • ⚠️ Duplicate header names get a suffix — a repeated JSON key silently drops a whole column
  • ⚠️ An empty header becomes “Column N” rather than losing the column
  • Convert a single named sheet, or all of them; row and column counts are listed per sheet
  • ⚠️ Very large tables are not converted to Markdown or HTML (the output would be unreadable); CSV and JSON are unrestricted
  • Every block of output has its own copy button
  • The file is never uploaded; it works offline

How to use

  1. Drop the spreadsheet into the dashed area, or click to choose one
  2. Pick the output format, whether the first row is a header, and which sheet to convert
  3. The result is grouped by sheet, each block copyable on its own

FAQ

Why do formulas come out empty?
Because there is genuinely no value in that cell in the file. When Excel saves a formula it also stores the last computed result alongside it (the cached value), and that is what a reader returns. A programmatically generated xlsx that Excel has never opened may have the formula written without any cached value — and then nothing can read it back. It is the shape of the file, not the parser. To get those numbers, open and save it once in Excel or LibreOffice.
Why do merged cells get lost?
Because merging is a display effect: the data still lives only in the top-left cell. A “Q1” heading spanning three columns is, at the data level, the text “Q1” in the first cell and two empty cells after it. That is exactly what you see when converting to CSV or JSON. It is the most common surprise when exporting a spreadsheet — a report that looks tidy comes out with a column of blanks, caused by the merges. To handle it properly, unmerge and fill in Excel first.
Why is there a size limit on Markdown and HTML?
Because the output would be unusable. A table with tens of thousands of cells becomes tens of thousands of lines of pipe characters — nobody reads that, and pasting it into any editor will hang it. CSV and JSON have no such limit, because those formats are for machines and are meaningful at any size. Convert for reading to Markdown; convert for processing to CSV or JSON.
Will dates be off by a day?
No — and this is precisely where tools like this usually break. An Excel date is really a number (days since 1899-12-30) displayed as a date by a number format, so a reader must be told to interpret it as a date; otherwise a column of dates comes back as `45123` and looks entirely normal. Turning that on introduces a second trap: `Date` objects carry a time zone, and interpreting them in local time shifts every date back a day for anyone east of Greenwich. This uses UTC throughout, avoiding both.
Can it read a password-protected spreadsheet?
No. An xlsx with an open password is encrypted at the file level and cannot be opened without it — that is not a limit of this tool, it is that the file contains no readable data without the password. WPS’s `.et` format is also unreadable (it is proprietary). For either, save as `.xlsx` from Excel and remove the password first.

Related tools