Excel Viewer
Open XLSX and switch between sheets
Browse every sheet, sort columns, see the values formulas produced, and export any sheet to CSV.
Excel Viewer
Runs in your browser · nothing uploaded01 — How to use Excel Viewer
02 — Getting good results
03 — Questions
No. It is unzipped and parsed in this tab. Spreadsheets hold payroll, customer lists and financial models, which is exactly the category of file that should not be handed to a third-party server to be viewed.
Because this is a viewer, not a spreadsheet engine. It shows the values stored in the file. Implementing recalculation would mean implementing the formula language, which is a substantially larger undertaking than reading the file.
No. Editing is deliberately out of scope here — writing a valid .xlsx back out, preserving formulas, styles and everything else the file contains, is a different problem from reading one. For editable tabular data, export to CSV and use the CSV Viewer & Editor.
Not shown. The tool reads cell data. Charts and pivot tables are defined by separate parts of the archive that describe how to render or recompute them, and reproducing that faithfully is a different tool entirely.
04 — More about Excel Viewer
What is inside an .xlsx
An .xlsx file is a ZIP archive containing XML. Unzipping one reveals a workbook part listing the sheets, a worksheet part per sheet holding the cells, a shared-strings table, and a styles part describing number formats. Text is usually not stored in the cell at all: repeated strings live once in the shared table and each cell references them by index, which keeps a file with thousands of repeated values compact. This is the Office Open XML format, published as a standard specifically so software other than Excel could read and write it, and it is why a browser can open one without any proprietary component.
Two details that trip up naive readers
Sparse rows are the first. A sheet does not store empty cells — a row with values in columns A and D contains exactly two cell elements, each carrying its own reference. A reader that appends cells in the order it meets them puts the value from D into column B, silently shifting every value after a gap. Correct reading means honouring the reference on each cell. The second is dates. Excel counts days from an epoch, but it also believes 1900 was a leap year, a deliberate bug preserved for compatibility with Lotus 1-2-3. The result is that there is no single epoch that works: serials on either side of the phantom 29 February 1900 need different anchors, and the common shortcut of using one epoch puts every early date a day out.
Why this reader is hand-written
The obvious approach would be to use an established spreadsheet library. The most widely known one has not published a fixed release to the public npm registry in years; the version available there carries two high-severity advisories, for prototype pollution and for a regular-expression denial of service, and the fixes are distributed only through the maintainer's own CDN. Loading code from an external host is something this site does not do at all — the build is verified to reference no external hosts — so that route was closed regardless of the advisories. Reading the subset of the format that a viewer actually needs turned out to be a few hundred lines: unzip, read three XML parts, and handle the sparse-cell and date-epoch subtleties described above. That is a smaller surface, with no supply-chain exposure, and its behaviour is pinned by tests against a real archive.
61 more tools
where this came from.
Same shell, same shortcuts, same promise: nothing leaves your browser.