CSV files arrive raw. Salaries come back as 1.2e5, dates as 2024-03-14T00:00:00Z, prices as plain numbers with no currency symbol. Excel makes formatting these columns trivial — but the moment you open the file in a CSV viewer or web tool, that capability disappears and you are stuck reading the bytes the database happened to dump. csvdiff.app now adds Excel-style column formatting to the viewer, with two layers of help (rules-based detection and an AI suggestion) so you almost never have to configure it by hand. And when you go to download, a review sheet lets you toggle columns and exclude individual rows before the file is written.
Like every other csvdiff.app feature, formatting and review happen entirely in your browser. The CSV bytes never leave your tab. AI suggestions go directly from your browser to whichever LLM key you configured — Anthropic never sees your data.
Excel-Style Column Formats, Inside the Viewer
Open any CSV in the viewer and hover a column header. Click the small format icon and a popover appears with six format types: Plain, Number, Currency, Percent, Scientific, and Date. Each comes with the kinds of options you would expect from Excel — decimals, thousands separator, currency symbol, date output (YYYY-MM-DD, DD MMM YYYY, relative, and four others). Formats are applied as a display layer: the raw values stay intact, so search, filters, and bulk find-and-replace keep working on the original strings.
A common case: an HR export gives you a salary column written as 1.2e5, 1.15e5, 9.8e4 — perfectly valid scientific notation that no human wants to read. Pick the Currency format, set the symbol to $, and the column instantly renders as $120,000.00, $115,000.00, $98,000.00. Pick the Number format with thousands separator instead and you get 120,000.00. The underlying CSV value is still 1.2e5, which means the cleaned-up display does not lock you into a downstream format choice.
Auto-Detection: The Format That Should Already Be Selected
A format menu that makes you click through six options every time you want to format a column gets old fast. So when you open the popover on an unformatted column, csvdiff.app sniffs the column's sample values with a small set of regex rules and offers a one-click "Apply" hint at the top. Currency symbols, trailing percent signs, scientific E-notation, and recognizable date shapes all trigger their respective format suggestion. If you agree, hit Apply and skip the rest of the popover entirely.
A Live Preview With Three Real Values, Not One
The preview block under the format options shows the first, middle, and last non-empty value from the column, formatting each with the current settings. Edge cases — negatives, blanks, oddly-shaped dates — surface immediately, instead of biting you halfway through a 50,000-row export. Tweak a decimal or change the date output and all three preview rows update at once.
Context-Aware Format Types
Showing a Date format option for a column of email addresses is noise. The popover now hides format types that do not fit the column's actual data: a numeric column gets Number / Currency / Percent / Scientific; a date-shaped column gets Date; a column of names or emails just gets Plain (with the AI suggest button still available as an escape hatch). Half-or-more of the column's non-empty values must look numeric or date-shaped for the corresponding option to appear, which keeps the menu honest on dirty real-world data.
Ask AI to Suggest a Format
Auto-detection covers the common shapes. The long tail — a column of UNIX timestamps stored as integers, fractional percentages, currency without a symbol, anything ambiguous — is where rules-based detection gets brittle. So the popover has an "Ask AI to suggest format" button at the bottom. Click it and the column name plus a handful of sample values are sent to whichever LLM key you have configured (Gemini or any free OpenRouter model). The model returns a format spec, csvdiff.app validates and applies it, and a one-line reason explains the choice.
Privacy still holds. Your API key lives in your browser; the request goes from your tab directly to your chosen model provider. csvdiff.app never proxies it. If you have not configured a key yet, the popover links straight to AI settings.
Format-Aware Column Header Chips
Once a format is applied, the column header gets a small chip showing the format type at a glance — $ for currency, % for percent, # for number, e for scientific, and "date" for a date column. Scrolling a wide table makes it obvious which columns are formatted and which are still raw, without having to open every popover to check.
A Review Sheet Before You Download
A clean export is half formatting and half deciding what to include. Click Download CSV in the viewer footer and a bottom sheet slides up: column toggles on the left, a preview of the first 200 rows on the right, and a row-by-row checkbox so you can exclude a handful of bad rows without writing a filter. The "Apply column formats" toggle lives here too — if you want the cleaned-up display values in the file you download, leave it on; if you want the original raw values for downstream tools, turn it off. The footer keeps a running count of "X of Y rows · M of N cols" so you know exactly what is going into the file before you commit.
| Include | # | id | name | salary | joined |
|---|---|---|---|---|---|
| 1 | 1 | Ayesha Khan | $120,000.00 | Mar 14, 2022 | |
| 2 | 2 | Ali Raza | $115,000.00 | Jul 02, 2021 | |
| 3 | 3 | Sara Ahmed | $98,000.00 | Jan 19, 2023 | |
| 4 | 4 | Usman Tariq | $130,000.00 | Nov 05, 2020 | |
| 5 | 5 | Hina Malik | $95,000.00 | Sep 30, 2022 |
Big Files, Responsive UI
Confirming the export does not freeze the tab. csvdiff.app processes rows in chunks of one to five thousand depending on file size, yielding control to the browser between chunks so the page stays responsive. A toast in the bottom-right shows file name, row progress, and a percentage bar; on completion it flips to a green check and holds for half a second before the OS save dialog appears. On a 100k-row CSV this is the difference between a tab that locks up for ten seconds and one that streams progress while you watch.
How It All Fits Together
- –Open any CSV in the viewer — same drop-zone you already use
- –Click a column's format icon — auto-detect offers the likely format, or pick from the context-relevant list
- –Tweak decimals, currency symbol, date output — the three-row preview updates as you go
- –Stuck? "Ask AI to suggest format" sends a few samples to your configured model
- –Click Download CSV — the review sheet opens with column toggles, row exclusions, and the format opt-in
- –Confirm — chunked export with progress toast, then the OS save dialog
No upload, no account, no Excel license. Open the file, format it, decide what to keep, download the clean version. If you need to compare it against another snapshot, the diff tool is one click away in the same tab.