Csvfab is a CSV editor for files that spreadsheets reject. It opens, filters and sorts multi-million-row files in seconds, and writes edits back into the original file byte by byte. Broken quoting, mixed encodings and irregular rows are handled without corrupting the source.
Csvfab run on Windows using Python and a Chromium-based browser. It includes filters, formula filters, grouping, computed columns, lookups, duplicate removal, noise word cleanup, date and phone normalisation, file comparison and anonymisation. A benchmark script measures it against other tools and verifies every result before reporting a time.
Edits are reversible back to the last save, and a save without changes returns the exact same bytes. Before the first overwrite a timestamped backup is created, external modifications are detected, and export to a formatted Excel workbook is available. The project is developed by Fabio Chelly and has been maintained since 2023.
| Accepts files via tabs, drag-drop, Open with integration | Delimiter, header, encoding auto-detected and adjustable from status bar |
| Filters applied globally or per-column with regex support | Formula-based filtering recalculates visible rows without altering file |
| Column panel shows type, distinct count, min, max, sum | Whole-file profile places every column on one line |
| Click sorts column, Shift+click extends multi-column sort order | Grouping produces counts, sums, averages in new tab |
| Row card displays record as form with editable values | Raw line view marks delimiters, quotes, invisible characters |
| Byte-level diagnostics report expected versus observed field counts | Identifies unquoted delimiters, unclosed quotes, missing fields |
| In-place editing, range selection, clipboard interchange, series fill | Full undo to last save with pending-change review before writing |
| Duplicate removal, column split and merge, empty cell filling | Noise word stripping, date and number format normalization |
| Computed columns derive values from existing fields via formulas | Cross-file lookup supports reconciliation and enrichment tasks |
| Two file versions compared on key column to reveal differences | Anonymisation preserves relational consistency with repeatable fakes |
| File retained as raw bytes, rows decoded only when displayed | Multi-gigabyte datasets open without freezing the window |
| Save rewrites original delimiter, line endings, encoding | Timestamped backup, external change detection, irregular row flags |