Data

CSV Tools

Paste a CSV export, a TSV dump, a copy-pasted spreadsheet, or any delimited text. DevKitLab auto-detects the delimiter, renders an editable table preview, and gives you a complete cleanup pipeline — trim cells, drop empty rows and columns, collapse runs of spaces, dedupe rows, sort and filter by column, rename headers, keep only the columns you need — then exports the result as CSV, TSV, JSON, or a Markdown table ready to drop into docs. Parsing, editing, and export all happen inside your browser tab; the original data never leaves your machine.

  • Auto-detect comma, semicolon, tab, or pipe delimiters with a one-click manual override, plus double / single quote selection for tricky CSVs
  • Editable table preview with click-to-edit headers and cells, live row / column / empty-cell counters, and a collapsible panel for small screens
  • Cleaning pipeline in one flow: trim cells, remove empty rows, remove empty columns, collapse repeated spaces, deduplicate identical rows
  • Column-level controls: keep only the columns you want, rename headers inline, sort any column ascending or descending with numeric-aware ordering
  • Multi-format export: CSV, TSV, JSON (array of objects), or Markdown table — each available as one-click Copy or as a downloadable file
  • Local-only processing: no upload, no telemetry, no account — safe for customer lists, internal exports, financial data, and PII
tools/CSV Tools
Output
CSV
Parsing settings
Sorting settings
Cleaning settings
Keep columns
No columns

Overview

Everything you usually open three different tools for — a parser, a viewer, a converter — packed into one local-only workflow tuned for the messy CSV that actually lands in your inbox.

  1. 01

    Auto-detect delimiter and quoting

    Detects comma, semicolon, tab, or pipe automatically by scoring column consistency, with a manual override for mixed exports. Switch between double-quote and single-quote handling when sources disagree.

  2. 02

    Editable table preview

    A two-way preview: parsed rows render as a clickable table, and any header or cell edit feeds straight back into the output. Sticky first column, sticky header, and live row / column / empty-cell counters.

  3. 03

    One-flow cleaning pipeline

    Trim whitespace, remove empty rows, drop empty columns, collapse double-spaces, deduplicate identical rows — each as an independent toggle so you can mix and match for the messiness of the source.

  4. 04

    Header-aware operations

    Toggle whether the first row is the header. When it is, column controls show real names; when it is not, columns are numbered. Inline rename writes the new header into every exported format.

  5. 05

    Numeric-aware sorting and filtering

    Sort any column ascending or descending. Numeric columns sort as numbers (so 2 comes before 10), strings fall back to natural locale-aware comparison.

  6. 06

    Keep-columns selector

    Hide irrelevant columns with checkbox pills. The kept set drives both the preview and every export format, so a 50-column CRM export ships out as just the 6 columns that matter.

  7. 07

    Multi-format export

    Switch the output between CSV, TSV, JSON (array of objects keyed by header), and GitHub-flavoured Markdown table. Copy to clipboard, or download a file with a sensible default name.

  8. 08

    Local-only, zero-upload processing

    Parsing, cleaning, editing, and exporting all run inside the current browser tab. Customer lists, finance exports, internal directories, and PII never leave the device.

How to use

A short pipeline: paste, confirm parsing, clean, shape, export. Each step is recomputed live so the output stays in sync with the preview.

  1. 01

    Paste CSV, TSV, or spreadsheet text into the input on the left.

  2. 02

    Confirm the auto-detected delimiter and quote character in Parsing settings; switch to Manual if the heuristics guessed wrong.

  3. 03

    Toggle "Use first row as header" so column controls show real names instead of 1, 2, 3….

  4. 04

    Apply Cleaning settings — Trim, Remove empty rows, Remove empty columns, Collapse spaces, Deduplicate — in any combination that matches the messiness of the source.

  5. 05

    Pick a Sort column and direction, narrow the kept columns, and rename any headers inline by clicking them in the preview.

  6. 06

    Choose Output format (CSV / TSV / JSON / Markdown), then Copy result or Download the file.

Details

The job is usually not "convert CSV" — it is "this export looks ugly, fix it before I send it on". This page is built for that work, end to end.

  • You can see the table while you clean it. Most online CSV viewers either preview OR transform; this one does both, with the preview reflecting every option change.
  • Header awareness is a first-class toggle. Spreadsheet exports without a header row, SQL dumps without one, JSON-flattened tables with one — all handled with a single switch.
  • Numeric-aware sorting means 2, 10, 100 actually sorts that way instead of 10, 100, 2.
  • Cleaning is composable. Run "trim → drop empty rows → dedupe" in one pass without bouncing between scripts and Excel.
  • Exports go where the data is actually going next: CSV for spreadsheets, TSV for clipboard-into-Google-Sheets, JSON for code, Markdown for docs and tickets.
  • No upload means it stays usable for customer data, payroll exports, ticket dumps, and anything else that should not leave your laptop.
  • Inline edits in the preview let you fix a single misspelled header or a stray value without re-pasting the entire CSV.

Use cases

These are the recurring cleanup jobs the page is built to make faster. Same workflow — paste, clean, export — applied to different messy real-world data.

  1. CRM lead import prep

    Dedupe rows, strip blank entries, normalise email casing, drop internal columns, then export the trimmed CSV for HubSpot / Salesforce / Pipedrive import.

  2. Ecommerce catalog cleanup

    Remove empty SKU columns, trim padded product names, sort by category, and rename headers (product_id → id) to match the upload template for Shopify, WooCommerce, or BigCommerce.

  3. Marketing campaign reports

    Filter to a single channel, keep only spend / impressions / conversions columns, and export either CSV for Sheets or Markdown for the weekly report.

  4. API debugging and contract checks

    Convert a CSV sample to JSON to see exactly how each row will arrive at the endpoint, including which fields are empty strings vs. missing entirely.

  5. Ad performance normalisation

    Reconcile Google Ads / Meta / TikTok exports with different column names and orderings into a single shared schema before ingesting into BigQuery or Looker.

  6. Bulk content edits via spreadsheet

    Filter rows that match a content tag, keep just the title / slug / status columns, and export Markdown into a Notion or Linear ticket for review.

  7. Finance reconciliation prep

    Normalise amount columns, drop empty totals rows, sort by date, and export to the format your accounting workflow (QuickBooks / Xero / a CSV importer) expects.

  8. Support ticket export cleanup

    Merge multi-platform support exports (Zendesk, Intercom, HelpScout) into one schema by keeping a common subset of columns and renaming headers.

  9. A/B test results to Markdown report

    Filter to the winning variant rows, sort by lift, and export Markdown directly into a PR description or postmortem.

  10. Schema-mapping for data engineering

    Use the preview as a manual mapping surface: rename source columns to match a target schema, drop the rest, export JSON for the loader script.

See also

When CSV cleanup is one step in a larger format hand-off, pair it with JSON Converter to move JSON ↔ CSV before or after table work. If the JSON you exported needs one last structural check, open it in JSON Formatter to validate the payload, inspect nesting, and copy a readable or minified version. For pasted tables that arrived with blank-line noise, mixed line endings, or BOM characters, start with Text Cleaner ; for one-value-per-line lists that need dedupe, sorting, or numbering before they become a table, use Line Tools first to shape the column. When the CSV came from a database export and you still need to review the source query, pair it with SQL Formatter to clean up SELECTs, JOINs, and filters.

Best practices

Habits that keep the cleanup repeatable and the output predictable as the CSVs get bigger or weirder.

  • Confirm "Use first row as header" before anything else — every other column control depends on whether row 1 is data or labels.
  • A reliable order: trim → remove empty rows → remove empty columns → collapse spaces → deduplicate → filter → sort → keep columns.
  • For numeric columns, double-check sort direction with a quick scroll. Numeric-aware sort handles 2 vs 10, but mixed-content columns may still surprise you.
  • Narrow down columns before exporting Markdown. Twelve-column Markdown tables look fine in raw text but wrap badly in Notion, Linear, and GitHub previews.
  • When sharing with both engineers and non-engineers, export both CSV and JSON of the same cleaned data — the JSON keeps types and keys, the CSV opens in Excel.
  • For tabs-and-newlines messes coming out of Sheets via copy-paste, set Manual delimiter to Tab — auto-detect usually gets it right, but locking it in stops surprises mid-edit.
  • Use the inline header rename instead of post-processing the CSV externally — the new name flows into CSV, TSV, JSON, and Markdown exports all at once.

Limitations

Knowing what the toolkit does NOT do keeps it useful — and tells you when to reach for something else.

  • Auto delimiter detection is a heuristic. It works for clean exports from major tools, but ambiguous samples (a few rows, mixed separators) need the Manual override.
  • It cleans and reshapes tables; it does not enforce a schema. Required fields, valid enums, and cross-row business rules still need a real validator downstream.
  • Numeric sorting reads each cell as a number when possible. Columns that mix 12, 12k, and 12,500 will be sorted as text — normalise the values first.
  • Very large pastes (tens of MB, hundreds of thousands of rows) will slow the preview down. For files that big, slice the relevant chunk first or use a streaming tool.
  • Markdown export is a single GitHub-flavoured table. Multi-table documents, custom alignment, or HTML cells are out of scope.
  • It is a viewer and reshape tool, not a CSV diff tool. For row-by-row comparison between two exports, use a dedicated diff viewer.
  • All processing is in-browser. There is no server side, no analytics on the data, no upload — the upside is privacy, the downside is no shared cloud state between devices.

FAQ

Practical answers about parsing, cleaning, exporting, privacy, and the trade-offs between output formats.

Is my CSV uploaded anywhere?

No. Parsing, cleaning, editing, sorting, filtering, and exporting all run inside the current browser tab. There is no server round-trip and no analytics on the data — safe for customer lists, finance exports, and any PII.

Does the toolkit support TSV and pipe-delimited files?

Yes. Auto-detect handles comma, tab, semicolon, and pipe by default. Switch to Manual to lock in tab for TSV, pipe for log-style exports, or semicolon for European CSVs.

How does "Use first row as header" actually work?

When enabled, row 1 supplies column names and downstream controls (sort, rename, keep) show real labels. When disabled, the first row is treated as data and columns are numbered. JSON exports reflect the same choice: header on uses keyed objects, header off uses indexed keys.

Can I keep only specific columns?

Yes. Use Keep columns to toggle columns off — the preview and every export format immediately drop them. The minimum kept is one column.

Can I remove rows that match a keyword?

Sorting and column-level filtering are first-class. Row-level keyword filtering is on the roadmap; for now, sort the column and delete the matching rows in the preview directly.

Can I rename column headers?

Yes. Click any column header in the preview to edit it inline. The new name appears in CSV, TSV, JSON keys, and the Markdown header row.

Can I edit individual cells?

Yes. Click any cell to edit it in place. Edits are persisted across format switches, so you can correct one value once and it stays correct in every export.

Can I export to JSON?

Yes. Switch Output format to JSON. The result is a [{...}, {...}] array where each row becomes an object keyed by the (possibly renamed) header.

Can I export to Markdown?

Yes. Markdown output produces a GitHub-flavoured table with pipe escaping and a --- separator row, ready to paste into PR descriptions, Notion, Linear, or any docs site.

Does sorting handle numeric values correctly?

Yes. Columns whose values parse as numbers sort numerically (2, 10, 100), other columns fall back to natural locale-aware text sort. Mixed columns sort as text.

What if the auto delimiter detection guesses wrong?

Switch Parsing settings → Manual and pick the exact delimiter. Auto-detect scores column consistency across the first ~20 lines, so very short samples or messy headers can mislead it.

How big a CSV can I open?

A few thousand rows by a few dozen columns render comfortably. Tens of thousands of rows still work but the preview gets slower. For files much larger than that, slice the relevant rows out first.

Why are some quoted strings still showing escape characters?

Set the matching Quote character in Parsing settings. Most CSVs use double quotes, but some exports (especially older Excel exports and CSVs from European locales) use single quotes — the parser needs the right one to unwrap escaped values.

Related tools

Round-trip between CSV and JSON, validate the resulting payload, or clean up the text wrapper around a copy-pasted table — all in the same data tools collection.