CSV Viewer
Open, filter, sort and rename columns
About this tool
Open a UTF-8 CSV/TSV file or paste text. The first row supplies headers by default; turn this off in Import options for headerless data. Double quotes follow CSV rules, including doubled quotes and embedded line breaks. Single/both/no-quote dialects and a custom one-character separator are optional. Automatic detection is a heuristic; choose the separator if needed.
No fields are discarded from ragged rows: missing cells are blank and extra fields get editable columns. Empty source headers stay empty. Headerless input receives generated column names. Filtering, sorting and renamed headers apply to every export, while the pasted source stays unchanged. Numeric columns contain only decimal/scientific numbers; mixed columns use text ordering. Large integer IDs sort without floating-point rounding, and blank values stay last.
Large tables use page controls; exports include all filtered rows, not only the current page. Files are limited to 10 MiB; bounded text, 100,000 data rows, 256 columns and 1,000,000 rectangular cells keep the browser responsive. Very large formatted output is rejected. Text-table alignment uses character units and can vary with emoji or fonts. Tabs become spaces in text tables. LaTeX requires a suitable Unicode engine/font for non-ASCII text; LaTeX/Typst outputs are source fragments, not compiled PDFs. All processing stays in this browser; input retention is described below.
The CSV / TSV section folds the source editor away when you want to focus on the table. Import options are optional; filter, format and export actions share the upper toolbar. The source and text output use the available width, while small tables keep their natural column widths. The shared browser store retains exact source text, import/export choices, filter and headers you explicitly edit. Parsed tables, generated exports, sorting and page positions are rebuilt, not saved. Large input is losslessly packed; browser storage capacity still applies. Storage failures use the shared indication and in-memory fallback. An empty or malformed draft is retained too. Reloading never replaces an empty source with the example.