Profile your CSV columns.
safe · secure · no server · works offline · fast
…or paste a file you copied in Finder, or just start typing at the cursor.
↓ scroll for about & FAQsafe · secure · no server · works offline · fast
…or paste a file you copied in Finder, or just start typing at the cursor.
↓ scroll for about & FAQ
Drop a .csv file and OmniViewer builds a per-column
profile: for each column it reports the type mix (numbers,
text, booleans), how many cells are blank, how many distinct values it holds,
and the min and max of the numeric ones. It runs locally in a background Web
Worker — no upload, no server.
Column stats are the fastest way to size up a spreadsheet export before you query, convert or import it: which columns are keys, which are mostly empty, where the outliers are. The same drop also shows the CSV as a table, runs SQL against it, converts it to JSON, and opens raw and hex views.
It’s one lens on OmniViewer’s CSV Viewer — 20 GB Tables, Sort, Filter & SQL: drop a file and every tab is one click away. OmniViewer opens every file format, entirely in your browser — no upload, no server.
No. OmniViewer is a static page with no server-side processing: your CSV is read directly by your browser and never leaves your computer. That is true of every tab, including the SQL engine and the exporter — the parsing all happens in Web Workers on your own machine.
CSV (comma-separated values) is a plain-text format for tabular data: one record per line, with fields separated by a delimiter — usually a comma, sometimes a tab or semicolon — and quoting for fields that contain the delimiter, a quote or a newline. It is loosely standardised by RFC 4180.
Effectively unlimited. The table has been tested in-browser with a 21 GB file of 100 million rows: a WebAssembly RFC 4180 parser streams every byte across a pool of Web Workers to get the exact row count and a sparse row-to-byte index, and the table then paints by reading only the bytes for the rows on screen. Sorting, filtering and finding stream the file too, so they cover every row rather than a loaded prefix.
Yes. Click a column header to sort by it, or type in the filter box to keep only matching rows (substring or regular expression, one column or all of them). Both run a streaming scan over the file in a Web Worker and build an explicit list of surviving rows, so they see every record. Filtering is capped at 5 million matching rows and sorting at 2 million rows — past that the sort is refused rather than silently truncated, and filtering first is the way through.
Yes. The SQLITE tab streams the file into a real in-browser SQLite database and lets you write SELECT … FROM data with WHERE, GROUP BY, ORDER BY, joins and aggregates. It is offered for files up to about 1 GB, because the database is held in WebAssembly memory. Above that, export a streamed .sql dump instead and load it with sqlite3 out.db < dump.sql.
Yes. Open export ▾ on the table and choose how many files you want. The CSV is copied through byte for byte in 1 MB blocks — original quoting and line endings preserved — switching to the next output file only on a real record boundary, so a quoted field containing a newline is never cut, and every part carries the header row. With the File System Access API it writes straight into a folder you pick, so the size is bounded by your disk, not by memory.
The delimiter is sniffed from the first line and shown in the info bar, and you can override it from the toolbar (comma, semicolon or tab). The hex view shows the exact bytes, so you can see whether lines end in CRLF or LF and whether there is a byte-order mark. OmniViewer detects text vs binary from the content, not the extension.
It is the same tool. hugecsv.com was the standalone big-CSV workbench by the same authors; its engine — the WebAssembly streaming parser, the full-file sortable and filterable table, column resizing, the streaming exporter and the splitter — now runs here at omniviewer.org/csv, so one viewer opens every format without giving up the deep CSV tooling.