CSV converter input
Auto scores comma, tab, semicolon, pipe, and space; choose a pinned delimiter when the source format is known.
Paste CSV-like rows or load one .csv/.txt file; parsing follows Auto detect or the pinned source delimiter above.
Parsed locally
Drop CSV or TXT onto the textarea.
Examples: |, ::, or ^; leave Source delimiter on Custom while testing.
Double quotes are standard CSV; single quotes fit some exports; None disables quoted fields.
Repeat quote matches RFC-style CSV; Backslash reads escaped quote characters.
Auto guesses; Use first row enables keyed exports; Treat all as data preserves row 1.
Set 10-1000 rows; downloads and copy actions still use the full parsed table.
rows
On turns padded cells into clean values; Off preserves field-edge spacing.
{{ trim_fields ? 'On' : 'Off' }}
On drops rows where every field is blank after optional trimming.
{{ skip_empty_lines ? 'On' : 'Off' }}
On converts numbers, booleans, and null-like tokens; Off keeps cells as text.
{{ detect_types ? 'On' : 'Off' }}
On converts ISO dates/timestamps; ambiguous regional dates stay text.
{{ detect_dates ? 'On' : 'Off' }}
Requires type detection; Off keeps blanks as empty strings.
{{ empty_as_null ? 'On' : 'Off' }}
Use a valid XML tag name such as rows, records, or import_batch.
Use a singular row tag such as row, item, or contact.
On emits row numbers; Off produces cleaner XML when order is obvious.
{{ xml_include_index ? 'On' : 'Off' }}
Use a simple identifier like dataset, contacts_2026, or staging_import.
Blank override cells keep auto names; edit display labels or JSON keys only after the header is correct.
Column Display label JSON key
{{ base || `Column ${idx + 1}` }}
Active key: {{ headers[idx] || baseHeaderKeys[idx] }}
No columns detected yet.
Requested mode
{{ metrics.requestedDelimiterLabel }}
Resolved mode
{{ metrics.resolvedDelimiterLabel }}
{{ metrics.sourceModeEvidence }}
# {{ header }} Copy
{{ row.index }} {{ cell }}
No rows to display.
Column Key Type Non-empty Null Empty Unique Sample value Copy
{{ 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.
{{ sqlInsertText }}
{{ xmlText }}
{{ htmlTable }}
{{ markdownTable }}
{{ tsvText }}
Customize
Advanced
:

Delimited text is often the last common language between systems that otherwise disagree about files, databases, and reports. A sales export, log extract, survey table, or one-off spreadsheet copy can move through email, scripts, storage buckets, and import tools because the basic idea is plain: records sit on lines, and fields are separated by a known character. CSV usually means comma-separated values, but the same family of files may use tabs, semicolons, pipes, spaces, or a short custom separator.

The format looks simple until a value contains the same character that separates fields. A customer name such as Smith, Jane should not become two columns. A note can contain a line break and still belong to one row. Quoting is the rule that protects those values, and the escaping rule decides how a quote inside a quoted field is represented. When those choices are wrong, the error spreads sideways across the table instead of staying isolated in one cell.

Common CSV ambiguities and their practical effect
Ambiguity Example Practical effect
Separator choicename;city;scoreA comma parser reads one wide column instead of three fields.
Quoted commas"Smith, Jane",OsloThe comma inside the name must stay inside the first field.
First-row meaningname,city,scoreThe row may be column labels, or it may be real data in a headerless file.
Text that looks numeric00127A product code or postal code can lose leading zeros if treated as a number.

Headers deserve special care because they change the meaning of many downstream formats. Positional formats can keep each row as an ordered list, but record-shaped formats need field names. A blank or duplicate header may be repaired into a usable key, yet the repaired key still needs a human check before it is loaded into a database, document, or automation step.

Delimited text becomes reliable only after the table shape is checked Delimiter, quotes, headers, and typing decide whether later formats inherit clean records or shifted cells. Raw row "Smith, Jane",Oslo,00127 Parsed cells Smith, Jane | Oslo | 00127 Record keys name, city, code If the middle step is wrong, every JSON object, SQL row, XML element, and table export repeats the same mistake.

Data typing is useful only when the source values are meant to be typed. Numbers, booleans, null markers, and ISO-style dates can make structured outputs easier to reuse, but identifiers, codes, and regional dates often need to remain plain text. Spreadsheet formula handling adds another caution: values that begin with =, +, -, or @ can be interpreted by spreadsheet software after export. The safer habit is to verify the parsed table before converting it and to keep suspicious or business-critical cells as text when meaning depends on exact characters.

How to Use This Tool:

Start by proving the rows and columns are correct. After the table shape is clean, choose the output that matches the next system or review step.

  1. Paste rows into CSV source, drop a CSV or TXT file onto the text area, use Browse CSV, or load Sample. The summary should show a row count, column count, delimiter, header status, and any warning badges.
  2. Leave Source delimiter on auto for the first pass, then pin comma, tab, semicolon, pipe, space, or Custom if the preview shows one wide column or shifted cells.
    Auto detection scores common separators by row width and consistency. A pinned delimiter is safer when the source format is known.
  3. Match Quote character and Escape style to the source. Standard CSV usually uses double quotes with repeated quotes inside quoted values; some exports use single quotes or backslash escapes.
  4. Set Header row after checking the first visible row. Use first row when it contains column labels, and choose Treat all as data when the first row is a real record.
  5. Open Advanced for cleanup choices such as Trim fields, Skip empty rows, Detect data types, Detect dates, Empty as null, XML tag names, SQL table name, and column naming overrides.
    Turn off Detect data types when identifiers, account numbers, postal codes, or part numbers must keep leading zeros or exact text.
  6. Review CSV Data Table for row shifts and Column Profile for type, empty, null, unique, and sample-value clues. Fix delimiter, quote, header, or naming warnings before trusting keyed outputs.
  7. Use JSON Arrays when column position matters, JSON Records or JSON Lines when headers are correct, SQL Inserts for load scripts, XML Rows for tag-based systems, and table formats for review. Copy or download only after the warning badges are understood.

Interpreting Results:

A successful parse means the text can be arranged into a rectangular table. It does not prove that the delimiter, header decision, or typing policy is right. The strongest confidence comes from matching row count, column count, delimiter badge, warning badges, and a few representative rows against what the source file was supposed to contain.

Column Profile is the fastest place to catch silent damage. A column with a surprising dominant type, a sample value that belongs somewhere else, or many blanks after one row often points to an earlier parse error. A preview trimmed badge means the visible table is shortened for display, while copy and download actions still use the full parsed table.

  • If the first customer, product, or event appears as a heading, change Header row to Treat all as data.
  • If record-shaped JSON, JSON Lines, or SQL actions are disabled, provide usable column labels or force the first row as a header after checking it.
  • If blank or duplicate headers are renamed, inspect the active field names before using keyed records, SQL identifiers, or XML element names.
  • If a quoted field error appears, repair the missing closing quote or choose the quote style that matches the source.
  • If exported data will be opened in a spreadsheet, review cells beginning with =, +, -, or @ before sharing the file.

Technical Details:

CSV conversion is a parsing problem before it is a format-conversion problem. The source text first has to become a stable grid of rows and cells. Only then can that grid be serialized as arrays, records, line-delimited records, SQL text, XML, HTML, Markdown, TSV, spreadsheet output, document tables, or an audit JSON payload.

RFC 4180 describes the common comma-based form with records on separate lines, optional headers, comma-separated fields, double-quoted fields, and doubled quote characters inside quoted values. Real exports commonly depart from that narrow form, so the converter exposes the choices that most often change interpretation instead of assuming that every file is strict comma CSV.

Transformation Core

The important audit path is the sequence that turns text into cells, cells into columns, and columns into reusable names.

CSV transformation stages and audit checks
Stage Rule used Audit cue
Line normalizationCarriage-return and carriage-return-line-feed endings are normalized before parsing.Rows from different operating systems should not merge unexpectedly.
Delimiter resolutionAuto mode compares comma, tab, semicolon, pipe, and space; custom mode accepts a short separator.A one-column table or repeating row-width warning usually means the separator is wrong.
Quote handlingDouble quote, single quote, or no quote mode controls whether separators and line breaks can stay inside a field.An unclosed quote stops parsing so the broken row can be fixed instead of guessed.
Escape handlingRepeated quote and backslash modes read embedded quote characters differently.Names, notes, and messages containing quotes should survive as one field.
Rectangular gridRows are padded to the widest parsed row so every output has a consistent column count.Rows with fewer fields are kept and reported rather than silently dropped.
Header decisionAuto mode weighs label-like words, uniqueness, common header terms, type differences, and data-like first-row values.The first real data row should not disappear into column names.
Type coercionOptional typing converts recognized numbers, booleans, null markers, blank nulls, and ISO-style dates.Codes and ambiguous dates should remain strings when exact characters matter.

A short worked path shows how those stages interact. With semicolon parsing, sku;active;price followed by 00127;yes;12.50 becomes three cells. If the first row is used as a header and type detection is enabled, the row can become a record where active is a boolean and price is a number. The sku value also looks numeric, so identifier-sensitive exports should keep typing off or verify that the code remains text.

Output dependency on header and typing decisions
Output family Header dependency Technical meaning
Array rowsNo header requiredEach row remains an ordered list of typed cell values.
Record objectsHeader requiredEach row becomes an object whose keys come from the active header names.
Line-delimited recordsHeader requiredEach line is a complete record object for stream-friendly processing.
SQL insert textHeader requiredActive headers become escaped column identifiers, and typed values become SQL literals.
XML rowsOptionalHeader names become element names when available; otherwise generic field tags are used.
Review tablesOptionalThe parsed grid is rendered as CSV, TSV, HTML, Markdown, spreadsheet, or document output for review and handoff.

Header repair keeps output usable but not schema-certified. Blank display labels receive fallback column names, duplicate keys are adjusted, and SQL or XML identifiers are simplified to legal forms. These repairs prevent broken output, but they can still differ from the exact field names expected by an importer.

Typed value behavior and limits
Cell pattern Typed value when enabled Reason to keep text
98.5 or 1.2e3NumberIdentifiers and account numbers may need leading zeros or exact spelling.
true, false, yes, noBooleanSurvey labels and status words may be intended as text.
null, undefined, or enabled blank cellsNullBlank and null can mean different things in imports and reports.
2026-05-30 or an ISO-style timestampISO timestamp stringRegional dates such as 03/04/2026 are not guessed.

Column profiling counts non-empty cells, nulls, empty strings, dominant type, unique typed values, and a sample value. The unique-value count is a practical audit clue for the parsed data, not a replacement for schema validation or a full data-quality review.

Privacy and Safety Notes:

Pasted text and selected CSV or TXT files are parsed in the browser. Copy, download, spreadsheet, document, SQL, XML, Markdown, HTML, TSV, and JSON actions create outputs from that same local data, so the exported files should be handled with the same care as the source.

The spreadsheet download may load supporting spreadsheet code from a public content network before creating the workbook. The conversion still uses the data already in the browser, but that library request can appear in browser, proxy, or firewall logs.

CSV and spreadsheet output can preserve risky cell prefixes. If untrusted values begin with formula-like characters, inspect or neutralize them before opening the export in spreadsheet software or sending it to someone else.

Worked Examples:

Semicolon spreadsheet export

A regional spreadsheet export starts with sku;price;active. If the preview shows one wide column, set Source delimiter to semicolon. The summary should switch to three columns, and Column Profile should show separate SKU, price, and active columns before you use JSON or SQL output.

Headerless event rows

A log extract begins with 2026-06-03,checkout,success. If auto header detection treats that row as labels, set Header row to Treat all as data. The first event remains in the table, while array and table outputs stay usable without invented field names.

Identifier-safe record output

A customer import has codes such as 00127 and 12E4. Keep Detect data types off when those values must remain exact. After checking the active field names, use JSON Records, XML Rows, or SQL Inserts only if the receiving system expects those same keys.

Broken quote recovery

A row such as "North region, Q4 leaves the parser inside a quoted field. The result will show an unclosed-quote error instead of exporting a guessed table. Add the missing closing quote or change Quote character if the source uses a different convention.

FAQ:

Why did auto delimiter detection choose the wrong separator?

Auto mode scores common separators from the visible text. Short files, mixed separators, or text-heavy rows can produce the wrong winner. Pin the separator when the preview columns do not match the source.

Why are JSON Records, JSON Lines, or SQL Inserts disabled?

Those outputs need column names. Set Header row to use the first row, or correct the source so the first row contains usable labels.

What happens when rows have different numbers of cells?

The rows are kept, warnings identify the irregular rows, and shorter rows are padded so exports keep a consistent column count.

Why did a date-looking value stay as text?

Date conversion is optional and limited to ISO-style dates or timestamps. Ambiguous local dates stay as text because the same numbers can mean different dates in different regions.

Does Preview rows limit copied or downloaded data?

No. Preview rows limits only the visible table length. Copy, download, and export actions use the full parsed grid.

Glossary:

Delimited text
A table-like text format where a separator marks the boundary between fields.
CSV
Comma-separated values, often used as a broad name for delimited text tables even when the separator is not a comma.
Delimiter
The character or short token that separates fields inside a record.
Quoted field
A field wrapped in a quote character so separators and line breaks inside the value stay part of that value.
Header
A first row that names columns instead of contributing a data record.
JSON Lines
A format where each line is a complete JSON value, often used for logs and stream-friendly records.
Formula injection
A spreadsheet risk where exported text is interpreted as a formula instead of a normal cell value.

References: