csvsort

Features

Every feature, one page.

csvsort is small on purpose. Here’s everything it does, and what’s deliberately left out.

Importing

Drop a CSV file onto the upload area, or click to browse. Parsing happens in the browser, with no upload and no waiting on a server. It runs in a background thread, so a large file shows a progress bar while the tab stays responsive. Quoted fields, embedded commas, and escaped quotes are handled by the same parser the export uses, so a round-trip is lossless.

The delimiter is detected from the first rows: comma, semicolon (common in European Excel exports, where the comma is the decimal separator), tab, or pipe. If the guess is wrong, pick another from the delimiter menu above the table. That re-reads the file and starts columns and filters over. The export delimiter is set separately (see below). It accepts .csv, .tsv and .txt files.

The first row is treated as the header row. If your file doesn’t have one, untick first row is the header: row 1 becomes data and the columns are named column_1, column_2, and so on, ready to rename. Untick Header row in the export options to leave the header out of the export too.

Reordering columns

Drag a column up or down in the Column Manager list. Drop it where you want it. The preview reflows instantly, and the export respects the visual order: what you see is what gets downloaded.

No mouse needed: each column has up and down arrows, and Alt+↑ / Alt+↓ moves a column from any of its controls. Focus stays on the column you’re moving, and screen readers hear its new position.

Renaming columns

Click the pencil icon on a column header to rename it. The original name stays editable in case you change your mind. Renames affect the exported file only. Your source file is never modified, since it was never uploaded.

Hiding columns

The eye icon toggles a column out of both the preview and the export. Hidden columns are remembered while the tab is open, so you can flip them back on without re-importing.

Sorting

Click a column header to cycle through ascending, descending, and no sort. Numeric columns sort numerically (so 100 beats 9); everything else falls back to a string compare. Sorting is purely a view setting. Your row order in the original file isn’t altered until you export.

Filtering rows

Add a filter on any column, including hidden ones, and pick a condition: contains, equals, a numeric range, is empty, or is not empty. Text matches ignore case. Add as many filters as you like; a row has to pass all of them to stay. The header shows how many rows match, and removing a filter brings its rows straight back.

Previewing

The preview scrolls through every row, with the header pinned, so a large file can be inspected and not just sorted blind. Only the rows on screen are drawn, so scrolling stays quick at hundreds of thousands of rows. Past about 450,000 rows the preview stops at that point (sort or filter to bring other rows into view); the export still includes every row.

Exporting

Hit Export CSV and you’ll get a download that reflects your renames, your column order, your hidden columns, your filters, and your sort. Fields containing commas, quotes, or newlines are quoted correctly on the way out.

The options button next to Export sets the output format: comma, semicolon, tab, or pipe delimiter (tab gives a .tsv); LF or CRLF line endings; whether to write a header row; a UTF-8 byte-order mark, which older Excel needs to show accented characters correctly; and a newline at the end of the file, on by default. The default is a plain comma-separated file.

What it doesn’t do (yet)

  • Editing individual cell values. Cells are read-only: this is a column-shape tool, not a spreadsheet.
  • Multi-file merges or joins.
  • Saving a “project” between sessions. Reload the tab and you start fresh.

If you want one of these, email we@spergs.com.

Open it on a real file.

csvsort is fastest to evaluate by trying it. Drop a CSV in; nothing gets uploaded.