CSV Viewer
Open .csv and .tsv files in your browser as a fast, scrollable table. Delimiters and quoting are handled for you, columns resize to fit, and even large files stay responsive, with nothing uploaded.
Free, no sign-up, and fully client-side. Your file never leaves your browser. Opens .csv, .tsv.
Open the viewer and drop a file to get started.
What is a CSV file?
CSV (comma-separated values) is the plainest, most universal way to move tabular data between spreadsheets, databases and scripts. Each line is a row and fields are separated by a comma (or a tab, in .tsv files), with quoting rules for values that contain commas, quotes or newlines. Its simplicity is also its weakness: a big CSV opened in a spreadsheet can be slow or silently truncated.
ViewKit parses the file locally following the RFC 4180 quoting rules, sniffs whether it is comma, tab, semicolon or pipe delimited, and renders it in a virtualized table so only the visible rows are in the page. Nothing is uploaded.
What you can do with the CSV viewer
Auto delimiter detection
Comma, tab, semicolon and pipe delimited files are detected automatically, including quoted fields with embedded commas and newlines.
Handles large files
Rows are windowed into the table, so wide or long files scroll smoothly instead of freezing the tab.
Resizable columns
Drag a column edge to resize, or double-click it to fit the widest value so long text is readable.
Faithful values
Values are shown exactly as written, with no reformatting of numbers, dates or leading zeros.
How to open a CSV file
- 1
Drop your .csv or .tsv file onto the box above (or click to browse). It is read in your browser, nothing uploads.
- 2
The delimiter is detected and the header row becomes the column names.
- 3
Scroll the table; drag or double-click a column edge to resize it to fit its content.
Doing the same thing in code
The usual way to inspect a CSV in Python:
import pandas as pd
# sep=None asks the Python engine to sniff the delimiter
df = pd.read_csv("data.csv", sep=None, engine="python", nrows=50)
print(df.shape, list(df.columns))
print(df.dtypes)
print(df.head())pandas infers a type for each column, so a ZIP code of 02134 is read as the integer 2134 and identifiers longer than 15 digits lose precision. Pass dtype=str to keep the original text. This page shows values exactly as they appear in the file.
CSV viewer: frequently asked questions
Can it open large CSV files?
Yes. Rows are virtualized so only what is on screen is rendered, which keeps large files responsive where a spreadsheet would struggle.
Why did my leading zeros or long ID numbers change?
The file itself is unchanged. A CSV stores only text, so Excel and pandas each infer a type per column: 02134 is read as the number 2134, and identifiers longer than 15 digits are rounded to float precision. This page displays the text as written, so you can confirm what the file contains.
My CSV has more rows than Excel will open. Can I still read it?
Yes. An Excel worksheet holds at most 1,048,576 rows, and rows beyond that are dropped without a warning when the file opens. This page has no row limit; rows are loaded as you scroll.
What about semicolon-delimited files from European locales?
They open normally. Where a comma is the decimal separator, the field separator is usually a semicolon instead, and that is detected automatically along with tab and pipe.
Does it handle tabs and other delimiters?
Yes, tab (.tsv), semicolon and pipe delimited files are auto-detected alongside standard commas.
Is my data uploaded?
No. The file is parsed entirely in your browser; its contents never leave your machine.