CSV Summary
{{ metrics.rowCount.toLocaleString() }} rows {{ metrics.columnCount.toLocaleString() }} columns {{ metrics.header ? 'Header detected' : 'No header' }} {{ metrics.delimiterLabel }} Preview trimmed
{{ t }}
{{ w }}
CSV:
rows
Column naming
Column Display label JSON key
{{ base || `Column ${idx + 1}` }}
Active key: {{ headers[idx] || baseHeaderKeys[idx] }}
No columns detected yet.
Leave fields blank to reuse detected labels and keys. JSON keys are sanitized and deduplicated automatically.
# {{ header }}
{{ row.index }} {{ cell }}
No rows to display.
Showing first {{ max_preview_rows }} rows. Export actions include the full dataset.
Column Key Type Non-empty Null Empty Unique Sample value
{{ profile.index }}. {{ profile.label }} {{ profile.key }} {{ profile.type || 'empty' }} {{ profile.nonEmpty.toLocaleString() }} {{ profile.nullCount.toLocaleString() }} {{ profile.emptyCount.toLocaleString() }} {{ profile.unique.toLocaleString() }} {{ profile.sample || '—' }}
No columns profiled yet.
Null counts include explicit null markers. Empty counts represent blank strings after trimming.
{{ jsonArrays }}
{{ jsonLines }}
{{ xmlText }}
{{ htmlTable }}
{{ markdownTable }}
{{ tsvText }}
{{ jsonRecords }}

Introduction:

Stylized table grid representing rows and columns.

Comma separated values files are plain text tables that store rows and columns for simple data exchange, and quick conversion and inspection help you move work forward with fewer mistakes.

Paste data or drop a file, choose detection or set the delimiter, then review the live preview and the column profile to confirm structure and types, for example when you convert CSV to JSON Lines for a pipeline.

The tool reads your text, identifies the likely separator, checks for a header, and infers basic types so booleans, numbers, and dates are handled predictably, then it prepares clean outputs you can reuse.

A short sample such as name city score with a few rows will show a detected header, numeric scores, and ready to copy JSON, XML, HTML, Markdown, or a spreadsheet table in seconds.

Valid structure still needs human judgment, so watch the warnings and the profile counts, and set stable labels and keys for consistent exports across repeated runs.

Technical Details:

Comma separated values (CSV) are row oriented text tables built from fields separated by a delimiter and optionally wrapped in quotes. The parser supports comma, tab, semicolon, pipe, or space separators, with either double or single quotes and repeat quote or backslash escapes. Header presence can be detected automatically or fixed by choice. JavaScript Object Notation (JSON) is emitted as records or arrays, JSON Lines as one object per line, Extensible Markup Language (XML) with customizable root and row tags, and Tab Separated Values (TSV) and HTML or Markdown tables are also generated.

Delimiter detection scores several candidates using the average number of fields per non empty line and a small penalty for inconsistency between lines. The highest score wins and then parsing proceeds with the chosen delimiter and quoting rules.

Column profiling reports the dominant kind in each column and counts non empty cells, nulls, empties, unique values, and a sample. Type inference recognizes booleans, numbers including scientific notation, the words null and undefined as null, and optionally ISO like dates that are normalized to an invariant form.

Results are comparable when headers and keys stay stable across runs, so set overrides when a header is missing or duplicated. Keep in mind this is a text parser tuned for pragmatic CSV conventions, and ambiguous inputs may need manual settings for best outcomes.

s(d) = n 0.1 · V n = ni m V = |nini−1|
Symbols and units
Symbol Meaning Unit/Datatype Source
d Delimiter candidate string Derived
nᵢ Fields counted in line i integer Derived
Average fields across sample real Derived
V Sum of absolute line to line differences real Derived
s(d) Delimiter score real Derived
q Quote character " or ' or none Input
e Escape style double or backslash Input
H Header detected boolean Derived
Validation and bounds
Field Type Min Max Step/Pattern Error Text
Upload .csv .tsv .txt; text/csv; text/tab-separated-values accept attribute
Preview rows number 10 1000 step 10
Custom delimiter text 0 4 max length 4
XML root tag text 0 32 sanitized, leading digit prefixed
XML row tag text 0 32 sanitized, leading digit prefixed
Parser stateful scan quotes and escapes honored Reached end of file while inside quotes.
Detector heuristic 5 candidates scored Unable to resolve delimiter.
Sanity checks row width pad missing cells Row N has M fields; Irregular row lengths detected.
Header keys sanitized deduplicated Header duplicated or missing, keys adjusted.

Processing pipeline

  1. Normalize line endings to a single newline.
  2. Score candidate delimiters using field counts across up to 20 lines.
  3. Parse rows with quoting and escape rules.
  4. Decide header presence by heuristics or explicit choice.
  5. Build safe display labels and unique JSON keys.
  6. Coerce values to boolean, number, null, or date when enabled.
  7. Compose preview, profiles, and export formats.
  8. Generate downloads or copy to clipboard on demand.

I/O formats and encoding

Input and output formats
Input Accepted Families Output Encoding/Precision Rounding
CSV text or file .csv, .tsv, .txt; text/csv; text/tab-separated-values CSV, TSV, XLSX, DOCX UTF‑8 text, binary blobs for spreadsheets none
JSON arrays and records, JSON Lines Pretty printed JSON; one object per line for JSONL n/a
XML Escapes & < > " ' n/a
HTML, Markdown HTML entity escaping; Markdown pipes escaped n/a

Networking and storage

Processing is browser based. A spreadsheet library is fetched from a public content network on first XLSX export; all parsing, profiling, and text conversions run locally thereafter.

Performance and complexity

Delimiter scoring examines up to 20 lines per candidate, and parsing is linear in the size of the input. Profiling uses bounded sets for uniqueness and simple counters per column.

Diagnostics and determinism

With identical inputs and options the outputs are identical. Warnings are deduplicated, and summary badges reflect the three most common column kinds.

Security considerations

HTML and XML outputs escape special characters, JSON uses a safe serializer, and JSON keys and XML tags are sanitized and deduplicated. Clipboard writes and downloads occur only after explicit user actions.

Assumptions and limitations

  • Space as a delimiter can be ambiguous for text with multiple spaces Heads‑up
  • Header detection is heuristic and may need manual override
  • Date detection only considers ISO like forms when enabled
  • Numbers use a dot decimal separator and no thousands separator
  • Very wide or long files are limited by device memory
  • XML tag names are sanitized and may be altered
  • Record oriented JSON requires a header to supply keys
  • Spreadsheet export depends on a third party script load

Edge cases and error sources

  • Quoted fields with unmatched quotes
  • Backslash escapes inside quoted text
  • Scientific notation and leading plus signs in numbers
  • Empty strings versus explicit null markers
  • Irregular row widths requiring padding
  • Duplicate or blank headers producing adjusted keys
  • Keys beginning with digits prefixed to stay valid
  • Non ASCII characters that need escaping in HTML or XML
  • Large unique value sets truncated in profiling
  • Embedded delimiter characters inside quotes

Privacy & compliance

Files are processed locally; nothing is uploaded. One optional script is fetched to enable spreadsheet export.

Step‑by‑Step Guide

CSV conversion and profiling follow a short sequence to check structure and export clean formats.

  1. Paste CSV text or drop a file Input.
  2. Pick a delimiter or use automatic detection Delimiter.
  3. Confirm header treatment and set label or key overrides if needed Header.
  4. Enable type and date detection when appropriate Typing.
  5. Review the profile and warnings, then choose an output tab and copy or download.

Example: a three column grade sheet with five rows becomes JSON records with keys name city score and a spreadsheet you can open immediately.

When the preview matches expectations, your exports will mirror it.

FAQ

Is my data stored?

No. Parsing, profiling, and conversions run locally. A single external script may be fetched to enable spreadsheets. Clipboard and downloads require clicks.

Avoid pasting secrets into shared devices.
Why are JSON records disabled?

Record shaped JSON and JSON Lines need column names. Turn on header mode or add label overrides so keys exist before exporting.

How accurate is delimiter detection?

It favors a candidate that yields many fields with low line to line variation. Ambiguous data may need a manual choice for reliable results.

What formats can I export?

CSV, TSV, spreadsheet and document tables, JSON arrays, JSON records, JSON Lines, XML, HTML, and Markdown tables are available.

Can I use it without a network?

Yes for text formats. Spreadsheet export needs one library fetched once. After that, conversions continue locally.

How do I convert CSV to XML?

Paste data, confirm header and keys, open the XML tab, adjust root and row tags, then copy or download the result.

What does “Preview trimmed” mean?

Only the first N rows show in the preview for speed. Exports always include all rows unless you remove them from the input.

Is there a cost or license?

Use is unrestricted here. Check the parent site for any broader licensing notes.

Glossary

CSV
Comma separated values text table.
Delimiter
Character that separates fields in a row.
Quote character
Character that encloses fields containing delimiters.
Escape style
How quotes and special characters are represented.
Header row
First row containing column names.
JSON
JavaScript Object Notation data format.
JSON Lines
One JSON object per line text stream.
TSV
Tab separated values text table.
XML
Extensible Markup Language markup format.
Null
Explicit missing value marker.