Add your file
Choose or drop a .csv or .tsv file. You can paste the contents instead.
Choose a .csv or .tsv file, or paste the text straight into the page, and the rows appear as a table with row and column counts. The delimiter is decided by the header row itself among comma, tab, semicolon and pipe, so a semicolon export from a European spreadsheet or a tab-separated file saved with a .csv name is still read correctly; you can also name the delimiter yourself instead of letting the header decide. Quoting follows RFC 4180: a comma inside quotes stays in its cell, a doubled quote collapses to one quote, and a line break inside quotes keeps the cell together instead of starting a new row. Long files are shown 500 rows at a time so scrolling stays responsive. Rows that carry more or fewer fields than the header are listed by row number rather than padded or dropped, and blank rows, mixed CRLF and LF line endings, stray text after a closing quote and a shortened preview each raise their own visible warning. Copy and download always return the complete source text — including a UTF-8 byte order mark if the file had one — not just the part on screen.
Choose or drop a .csv or .tsv file. You can paste the contents instead.
The file is read and parsed in this browser — nothing is uploaded.
Look over what came back, then copy it, download it, or move on.
Want to know how files are handled? Read the privacy notice →
Pick the .csv file with the file button, or paste its text into the page, and the table is drawn straight away from the first row down — nothing is installed and nothing is sent anywhere. The first row becomes the header, the delimiter is read from that same row, and a long file is shown 500 rows at a time so the tab stays responsive while you scroll.
Copy and download hand back the complete source text rather than the shortened preview, so even a 5 MB file comes back exactly as it went in. If the original began with a UTF-8 byte order mark it is put back on the way out, and the download keeps your own file name, adding .csv or .tsv only when the name had no extension at all.
No — the CSV is read by the page you already have open, so the bytes are parsed on your own machine and no copy of the file is transmitted anywhere. Nothing is stored either: closing the tab is enough to be rid of the table, and there is no account that could hold a history of what you opened.
Yes — once the page has loaded, opening a CSV needs no further network access, because parsing, the table, copy and download all run from code already in the browser. A connection that drops mid-session does not interrupt reading a file you have already chosen.
Open this page in Edge, Chrome or Firefox on Windows 11 and choose the file — no Office licence, no download and no change to file associations is required. It also sidesteps the familiar Windows annoyance of a long order number being rewritten in scientific notation, since every field is displayed exactly as stored.
Yes — the viewer runs in mobile Safari and mobile Chrome, so you can open a CSV straight from Files, Drive or a mail attachment on a phone without installing an app. The 500-row window keeps scrolling smooth on a small screen, and the same 5 MB ceiling applies as on a desktop.
That error means a double quote was opened and the file ran out before a matching quote closed it, which would otherwise swallow the rest of the file into a single cell. The message names the row and column where the quote opened; the usual causes are a stray quote left inside a text field and an export that was cut short partway through writing.
The bytes are not valid UTF-8, so a legacy export in Windows-1252, Shift_JIS or GBK is refused outright rather than shown with question marks where the accented letters were. Re-save it as CSV UTF-8 from the program that produced it and it opens; a UTF-8 byte order mark is fine and is quietly stripped so it never lands in the first header cell.
It means some rows of the CSV carry more or fewer fields than the header row, and those rows are listed by number instead of being padded out or thrown away. Up to 200 of them are listed individually while the total stays exact, so you can jump to the record where the export went wrong and still read every original value.
Up to 5 MB, and the size is checked before any byte is decoded, so an oversized file is refused instantly instead of freezing the tab. Inside that ceiling the parser also stops with a clear error at 2,000,000 rows, 4,096 fields in one row, or 1,000,000 characters in a single field.
Yes — every field is handled as text, so 007, a nineteen-digit account number and 0031234567 all survive verbatim, with no scientific notation and no dropped zeros. Values that look like dates, such as 03/04/2026, are left alone as well rather than being reinterpreted into another regional order.
A CSV separates fields with a comma and a TSV with a tab; both are plain text and both open here without any conversion step. Because the delimiter is decided by the header row rather than the extension, a tab-separated file saved as .csv, and a semicolon or pipe export, are all read correctly too.
Reading it here is safe in the way that matters: the file is treated as text only, so a formula such as =cmd|... is displayed as characters and never evaluated, and no macro inside the file can run. That is not a malware verdict — the very same file can still be dangerous in a spreadsheet program that does execute formulas.
Yes — no installation, no sign-up, no per-file quota: open the page, choose the file, read the table. It is a reader rather than an editor, so if you need to change cells and save the result you will still want a spreadsheet program afterwards.
No — a clean table only proves the file is well-formed UTF-8 text with a consistent delimiter and consistent quoting. Whether the figures are accurate, the export complete, or the sender trustworthy is beyond what any parser can judge; the ragged-row and blank-row warnings describe structure, not truth.