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 }} Copy
{{ 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 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 }}
:

Introduction:

Comma separated values files are plain text tables where each line represents a row and commas separate the individual cells. They make it easy to move lists or reports between tools without changing every field by hand.

In many projects you need a quick way to inspect and reshape comma separated values text before loading it into dashboards or applications. A flexible comma separated values to structured data conversion helper avoids writing brittle one off scripts for every import.

Here you paste or drop tabular text and immediately see a clean table with row counts, column counts, sample values, and simple warnings. From there you can turn the same dataset into configuration friendly formats such as structured objects, markup, or database statements.

For example you might paste a list of customer records from a spreadsheet, confirm that names, dates, and amounts look sensible, then export inserts for a staging database. It still helps to review edge cases such as empty values or irregular rows because a structurally valid file can hide subtle mistakes.

Running the same dataset with consistent delimiter settings, header choices, and trimming rules keeps results comparable over time. When you change those options, watch how the reported column types and row counts shift since that often reveals hidden whitespace, stray separators, or extra header lines.

Technical Details:

Comma Separated Values (CSV) text encodes tabular data as rows and columns separated by newline characters and a chosen delimiter symbol. The converter reads that text into a structured grid, infers an optional header row, and then regenerates equivalent records as JavaScript Object Notation (JSON) objects or arrays, Structured Query Language (SQL) insert statements, tab separated values (TSV), eXtensible Markup Language (XML), HTML tables, Markdown tables, and spreadsheet workbooks.

As the file is parsed, the engine measures the number of data rows, the widest column count, and whether the first row behaves like column labels. It also builds a compact profile for each column, counting non empty cells, null markers, empty strings, unique values, and a representative sample value while classifying columns as numeric, boolean, date like, textual, object shaped, purely null, or empty.

Header detection combines several signals rather than relying on a single rule. It scores the first row by checking for common header keywords, the share of distinct labels, how closely the values resemble proper names or compact codes, and how different the type distribution in the first row is from the type distribution of later rows, then compares that score with a width dependent threshold before deciding whether to treat the first row as labels or data.

When type detection is enabled, each field is first trimmed and then interpreted in stages: explicit null markers become null values, true or false like tokens become booleans, plain decimal or scientific notation strings become numbers, and optionally ISO style timestamps are recognised and preserved in canonical form. Everything that does not match these patterns remains a string so that the original content is still accessible in exports.

Parsing and conversion pipeline

  1. Normalise all newline sequences so the text behaves as a single logical buffer.
  2. Select the delimiter from user settings or by scoring candidate symbols across the first few non empty lines.
  3. Scan the buffer character by character, handling quotes, escapes, delimiters, and line breaks to produce raw rows.
  4. Pad shorter rows with empty cells, record warnings for irregular lengths, and compute the maximum column count.
  5. Decide whether a header row is present using the configured mode or the heuristic score of the first row.
  6. Derive safe header keys and display labels, enforcing uniqueness and letting user overrides refine names.
  7. Coerce each cell into typed values when detection is active, or keep trimmed strings when it is disabled.
  8. Generate column profiles and summary badges, then synthesise JSON, XML, HTML, Markdown, TSV, SQL, CSV, XLSX, and DOCX outputs.

Key metrics and symbols

Core metrics computed from the parsed data.
Symbol Meaning Unit/Datatype Source
rowCount Number of data rows after optional header and empty line handling. integer Derived from parsed rows
columnCount Maximum number of fields across all rows after padding. integer Derived from parsed rows
header Indicates whether a header row is currently in use. boolean Auto detection or user choice
delimiterLabel Human readable description of the delimiter that was applied. string Resolved from settings and text scan
previewTrimmed Signals that the on screen preview shows only the first block of rows. boolean Comparison of total rows with preview limit
typeSummary Top column type counts, such as numeric, text, date, boolean, or object. array of strings Aggregated from column profiles

Validation and bounds

Input controls, limits, and error handling.
Field Type Min Max Step / Pattern Error text or behaviour Placeholder
CSV text area multiline text n/a n/a any pasted or loaded text Shows “No rows detected after parsing” when nothing remains after trimming. Sample customer table
Preview rows integer 10 1000 step 10, clamped to bounds Extra rows stay exportable while the preview badge notes trimming. 200
Custom delimiter short text 0 4 up to four characters Empty custom input falls back to a comma delimiter. Vertical bar
XML root tag text 0 32 invalid characters removed, numeric prefix prefixed with “n” Missing or empty name falls back to rows. rows
XML row tag text 0 32 same sanitiser as the root tag Missing or empty name falls back to row. row
SQL table name text 0 64 non alphanumeric characters replaced, leading digits prefixed Invalid or empty input falls back to a generic dataset table identifier. dataset
Type detection switches booleans n/a n/a detect types, detect dates, empty as null Changes only affect future parses, not already exported strings. various defaults
Parsing errors status n/a n/a state machine detects quoting problems Reports messages such as “Unable to resolve delimiter” or “Reached end of file while inside quotes”. none

I/O formats and encoding

Supported input and output formats.
Input Accepted families Output Encoding / precision Rounding policy
Pasted text CSV like lines with comma, semicolon, tab, pipe, space, or custom delimiter Preview table, CSV copy, TSV text UTF-8 text, quoted where needed No extra rounding beyond JavaScript number representation
Dropped file .csv and .txt files read as text Same exports as pasted text File contents treated as a single text buffer Values preserved exactly except for configured trimming
JSON arrays Rows as arrays of typed values Indented JSON string and downloadable file Standard JSON encoding with two space indentation Numbers serialised using built in JSON stringify
JSON records Objects mapped from header keys Indented JSON and JSON Lines One object per row, keys derived from headers Same as arrays, plus string escaping for keys
XML Sanitised root and row tag names Well formed XML document with optional row index attributes UTF-8 text with character entity escaping Values converted to strings without numeric rounding
SQL Header based columns and typed row values Single INSERT statement with multiple value tuples Identifiers escaped with backticks, values quoted and escaped Numbers and booleans preserved as literals, null as NULL
Spreadsheet exports Header and rows as an array of arrays XLSX workbook with one sheet, DOCX document External workbook library plus document export helper Cell values mirror current preview and header configuration

Assumptions and limitations

  • The parser assumes a single dominant delimiter; mixed delimiters in one file are treated as irregular rows Heads-up
  • Header detection is heuristic and may occasionally misclassify a data row as labels or the reverse Heads-up
  • Type detection only recognises plain decimal or scientific notation numbers and specific boolean and null tokens.
  • Date detection focuses on ISO style timestamps and a few simple date patterns; other date formats remain text.
  • Very wide or very long tables are previewed only up to the configured row limit, although exports still include all rows.
  • XML tag names are sanitised by dropping unsupported characters and prefixing numeric identifiers, which can differ from the original headers.
  • SQL output uses generic insert statements and does not add types, constraints, or primary keys for your database.
  • Spreadsheet exports rely on a client side library, so extremely large datasets may take noticeable time to generate.

Edge cases and error sources

  • Unclosed quotes in any row stop parsing early and trigger an error about reaching the end of the file inside quotes.
  • Rows with extra delimiters produce more columns than expected and are padded with blanks while emitting warnings.
  • Numbers that include thousands separators or currency symbols are treated as text rather than numeric values.
  • Tokens such as null or undefined in the source become nulls when detection is enabled, which may surprise downstream tools.
  • Boolean like words such as “yes” and “no” become true and false values and no longer match the original strings exactly.
  • Whitespace trimming can collapse meaningful leading or trailing spaces when the trim option is left on.
  • Turning off type detection after parsing does not retroactively convert existing typed values back to their original strings.
  • Header overrides that produce duplicate labels or keys are automatically adjusted, which can change JSON and SQL field names.
  • Very sparse tables with many blank cells make type classification less reliable because few non empty samples are available.
  • Files with inconsistent encodings or stray control characters may display odd glyphs in previews even though exports remain structurally valid.

Privacy and compliance

All parsing, profiling, and export work is performed in a browser based interface, and the code does not transmit your CSV contents to a server. To support spreadsheet export an external library script is downloaded, but only the code is fetched rather than your data. Files are processed locally; nothing is uploaded, so you should still avoid pasting credentials, secrets, or highly sensitive personal information.

Step-by-Step Guide:

Working with comma separated values data here is about turning a raw text table into clear, reusable structures for analysis or import.

  1. Prepare your source as a plain text file or spreadsheet export and identify the current delimiter CSV source
  2. Paste the text into the main input area or drop a suitable .csv or .txt file onto it.
  3. Wait for the preview table and summary badges to appear, then confirm that rows and columns line up as expected.
  4. Open the Advanced panel and adjust Delimiter, header mode, trimming, and type detection if cell boundaries or types look wrong.
  5. Optionally rename display labels or JSON keys in the column naming table to match your downstream schema.
  6. Switch between the Data, Profile, JSON, XML, HTML, Markdown, TSV, and SQL tabs to inspect or copy the representations you need.
  7. Use the copy or download buttons on each tab to collect CSV, JSON, JSON Lines, SQL inserts, XML, HTML, Markdown, TSV, XLSX, or DOCX exports Check before sharing

For example you can load the bundled sample dataset, confirm that the header row is detected and scores are typed as numbers, then copy JSON Lines for an ingestion pipeline while also exporting SQL inserts for a staging database.

The outcome is a single source of truth for your tabular data that is easy to reuse across scripts, notebooks, or database tools.

  • Start with automatic delimiter and header detection, then override only when the preview or profile looks suspicious.
  • Keep type detection on for most datasets so numeric, boolean, and date like columns are ready for analysis.
  • Turn empty values into nulls only when your target system distinguishes between empty strings and missing values.
  • Use the profile tab to spot columns that are mostly empty, unexpectedly unique, or dominated by a single value.
  • When creating SQL, briefly scan the identifiers row to ensure that renamed headers still match your database schema.
  • For very large files, rely on the “Preview trimmed” badge to understand that only part of the dataset is visible on screen.

Pro tip: once you find delimiter, header, and typing settings that suit a common data source, reuse them for every export from that system so JSON, XML, and SQL outputs remain consistent over time.

Features:

  • Automatic delimiter detection across comma, tab, semicolon, pipe, space, and short custom sequences.
  • Smart header detection that weighs keywords, uniqueness, type patterns, and proper name cues.
  • Column profile view with non empty counts, null and empty splits, unique value cardinality, and a sample value for each column.
  • Type detection for numbers, booleans, null markers, and optional ISO style dates, with empty as null handling when desired.
  • Flexible header renaming so display labels, JSON keys, XML tags, and SQL identifiers can be aligned with your schema.
  • Multi format exports including CSV, JSON arrays, JSON objects, JSON Lines, XML, HTML tables, Markdown, TSV, SQL inserts, XLSX workbooks, and DOCX tables.
  • Row level copy actions and per format copy or download buttons for quick sharing and reproducible conversions.

FAQ:

What kinds of data can I load?

You can paste any delimited text that resembles a table or drop a plain text file with a consistent delimiter. Comma, tab, semicolon, pipe, space, and short custom delimiters are supported, and irregular rows are still accepted with warnings rather than being discarded.

Structured binary spreadsheets must be exported to text first.
How accurate is header detection?

Header detection combines keyword checks, uniqueness, proper name patterns, and type distribution differences between the first row and later rows. In many everyday files this reliably identifies column labels, but you can always force “Use first row” or “Treat all as data” when the preview suggests that the automatic choice is wrong.

Trust the preview and profile when in doubt.
Is my data stored or transmitted?

Parsing, profiling, and conversions run inside your browser session, and the script does not send your CSV contents to a server. A public workbook library is fetched for spreadsheet export, but the request carries only code, not your dataset. Files are processed locally and are not persisted by this interface.

Avoid pasting highly sensitive information.
Which formats and encodings are supported?

The converter emits JSON arrays, JSON records, JSON Lines, XML, HTML tables, Markdown tables, TSV, CSV, SQL insert statements, XLSX workbooks, and DOCX documents. All text output is UTF-8, numbers and booleans follow standard JSON and SQL representations, and XML entities are escaped as needed.

Binary spreadsheets are provided via the downloaded workbook library.
Can I use this without network access?

Once the page and its libraries have loaded, core parsing, profiling, and text based exports continue to work without further connections. Spreadsheet export depends on the external library being available in the browser cache, so XLSX downloads may fail if that script is not yet cached and the network is unavailable.

Refresh after reconnecting if exports fail.
Does this require payment or licensing?

The interface exposes no sign in, billing, or license fields and simply converts the data you provide. Any broader usage terms come from the platform hosting this page, so you should review those terms separately if you plan to integrate exports into production workflows or commercial tools.

Check your organisation’s policies for data handling.
How should I read borderline type results?

When a column mixes numbers and text, the profiler chooses the type with the most non empty samples and reports the count. That means an identifier column with a few missing values may still be treated as text, while a mostly numeric column with one stray label can appear numeric but still show that label as a sample value.

Use both the type and sample when judging columns.
How do I convert for database import?

Ensure the header row matches your target table column names, adjust JSON keys and display labels if needed, then navigate to the SQL tab. Copy or download the generated insert statement and run it in a safe staging environment before applying it to live data, confirming that types and null handling match your schema expectations.

Always test on a small subset first.

Troubleshooting:

  • The preview shows one very wide row: try changing the delimiter from auto to the symbol you expect.
  • Numbers appear as text: check that thousands separators and currency symbols are removed and that type detection is enabled.
  • Header detection seems wrong: force the header mode to “Use first row” or “Treat all as data” and recheck the profile.
  • JSON or SQL tabs are disabled: ensure that a header row is active so object keys and column names can be derived.
  • XML tags look unfamiliar: review the XML root and row tag inputs and remember that invalid characters are stripped.
  • Spreadsheet export fails: confirm that the workbook script has loaded and that your browser allows script downloads from the library host.
  • Copy buttons do nothing: verify clipboard permissions in your browser and, if required, retry after interacting with the page.

Advanced Tips:

Use these ideas when you are tuning repeated imports or building pipelines around the converter.

  • Tip Keep one small representative file per source system and use it to test delimiter, header, and typing changes before running them on full exports.
  • Tip Align JSON keys, XML tags, and SQL identifiers using the column naming table so that every export shares the same stable schema across formats.
  • Tip Treat the profile view as a quick data quality report, watching for columns with unexpectedly high null counts or suspiciously low uniqueness.
  • Tip When you expect nested structures, store them as JSON strings inside cells and allow type detection to keep them as text for later parsing in code.
  • Tip Use the “Skip empty rows” and “Trim fields” switches together when cleaning exports from spreadsheets that introduce blank lines or padded cells.
  • Tip For long running workflows, document the exact delimiter, header mode, and type detection settings alongside your exported files for easy reproducibility.

Glossary:

Comma Separated Values (CSV)
A plain text table format where delimiters separate fields in each row.
JavaScript Object Notation (JSON)
A text based data format representing values as arrays and key value objects.
JSON Lines
A variant where each line is an individual JSON object, suitable for streaming ingestion.
Structured Query Language (SQL)
A language for defining, querying, and modifying relational database tables.
Tab Separated Values (TSV)
A delimited text format that uses tab characters instead of commas between fields.
eXtensible Markup Language (XML)
A hierarchical markup format that uses nested tags to represent structured data.
Header row
The first row in a table that provides column labels instead of data values.
Null value
A marker that represents missing information, distinct from an empty string.
Column profile
A summary describing type, counts, uniqueness, and a sample value for one column.