UtilityKit

500+ fast, free tools. Most run in your browser only; Image & PDF tools upload files to the backend when you run them.

Table Converter — Multi-Format

Auto-detect any tabular input (CSV, TSV, Markdown, HTML, JSON) and convert to any other. One-stop converter for tabular data.

About Table Converter — Multi-Format

Table Converter takes any common tabular representation as input and emits any of the others as output. Supported formats are CSV (comma-separated), TSV (tab-separated), Markdown tables (GitHub-flavoured pipe-and-dash), HTML <table> markup, and JSON arrays of objects. The tool auto-detects the input format by examining structural signals — leading [ for JSON, <table tag for HTML, pipe-dash separator line for Markdown, tab characters for TSV — and falls back to comma detection. Force detection from the dropdown when input is ambiguous (e.g. CSV that contains pipe characters). Output format is selected separately, so you can convert in any direction without re-pasting. Conversion is purely structural: the tool parses input into a row matrix, then re-emits it in the chosen format. Everything runs in your browser; tabular data with PII or proprietary content stays local.

Why use Table Converter — Multi-Format

  • One Tool, Five Formats: CSV, TSV, Markdown, HTML, and JSON — paste any of them and emit any other without switching tools or learning multiple UIs.
  • Reliable Auto-Detection: Heuristics for each format (leading [ for JSON, <table tag for HTML, pipe-dash separator line for Markdown, tab characters for TSV) work on the vast majority of real-world inputs.
  • Manual Override: Force the input format from the dropdown when auto-detection is wrong (e.g. CSV with pipes that looks Markdown-y) — no need to clean the source first.
  • Round-Trippable: Conversion is purely structural — CSV → JSON → CSV produces equivalent output (modulo whitespace inside cells), so the tool is safe in pipelines.
  • Markdown-Friendly: Output Markdown tables are GitHub-flavoured: pipe characters, dash separators, and inline pipe escaping. Drop directly into README files or PRs.
  • Browser-Only: All parsing and emission run in JavaScript in your tab. PII, salary figures, and proprietary content never reach a server.

How to use Table Converter — Multi-Format

  1. Paste any tabular data into the input panel — CSV, TSV, Markdown table, HTML <table>, or JSON array.
  2. Watch the Detected line update automatically to confirm the format the tool inferred.
  3. If detection is wrong, override it from the Force input format dropdown — Auto-detect is the default.
  4. Pick the desired Output format from the second dropdown: CSV, TSV, Markdown, HTML, or JSON array of objects.
  5. Click Convert to produce the output, then Copy or Download the result with the appropriate file extension and MIME type.
  6. Use Clear to reset and start a fresh conversion with different input.

When to use Table Converter — Multi-Format

  • Converting an HTML <table> from a webpage into a Markdown snippet for documentation.
  • Reformatting a CSV export into a Markdown table for inclusion in a GitHub README or pull request.
  • Converting a JSON array of objects into a copy-pasteable HTML table for a CMS or knowledge-base article.
  • Reshaping a TSV log dump into JSON for ingestion by a JSON-based pipeline.
  • Quickly switching between tabular formats during data exploration without re-pasting between specialised tools.
  • Cleaning up a Markdown table from a chat message into proper CSV for spreadsheet import.

Examples

CSV → Markdown

Input: name,city,age Alice,Paris,30 Bob,Berlin,28

Output: | name | city | age | |---|---|---| | Alice | Paris | 30 | | Bob | Berlin | 28 |

HTML table → JSON

Input: <table><tr><th>k</th><th>v</th></tr><tr><td>foo</td><td>1</td></tr></table>

Output: [ { "k": "foo", "v": "1" } ]

JSON → CSV

Input: [{"name":"Alice","role":"admin"},{"name":"Bob","role":"editor"}]

Output: name,role Alice,admin Bob,editor

Tips

  • If your input mixes tabs and spaces (common in pasted log output), force TSV or CSV explicitly — auto-detection biases toward whichever character is more common.
  • Markdown table output uses GitHub-flavoured syntax with --- separators — many static site generators (Jekyll, Hugo, Docusaurus) accept it out of the box.
  • When converting JSON → HTML, the first object's keys become column headers; mixed-key arrays append later keys but the table may look ragged.
  • Pipe characters inside cells are escaped automatically when emitting Markdown — the round-trip Markdown → CSV → Markdown is lossless for normal content.
  • For large inputs (>10K rows), CSV and TSV emit fastest; HTML and JSON output produce more characters and may slow rendering in the textarea.

Frequently Asked Questions

How does auto-detection work?
The tool examines structural signals: leading [ or { for JSON, the <table tag for HTML, a pipe-dash separator line (|---|---|) for Markdown, and tab characters for TSV. If none match, it falls back to CSV. Override from the dropdown when detection is wrong.
What if my CSV contains pipe characters?
Auto-detection prefers Markdown when it sees a pipe-dash separator line; otherwise pipes are treated as literal data inside CSV. If your CSV has both pipes and looks like a Markdown table, force CSV explicitly from the dropdown.
Are quoted fields and embedded commas handled?
Yes. The CSV/TSV parser implements RFC 4180 quoting: fields wrapped in double quotes can contain commas, newlines, and escaped double quotes (""). Output preserves these quoting rules on the way back.
How does it handle JSON arrays where objects have different keys?
All distinct keys across all objects become columns. Objects missing a key get an empty cell in that column. Column order follows first-appearance order across the array.
What about nested objects in JSON cells?
They are JSON-stringified into the corresponding cell when emitting CSV, TSV, Markdown, or HTML. To work with nested structures as scalar columns, pre-flatten with json-flatten-unflatten.
Can I round-trip without data loss?
For scalar cell content, yes — CSV → JSON → CSV produces equivalent output (modulo trim/normalisation of leading/trailing spaces). For nested objects, the JSON-string representation makes the round-trip lossless if you only convert through JSON-aware formats.
Does the HTML output include thead/tbody?
Yes. The first row becomes <thead><tr><th>… and subsequent rows go inside <tbody><tr><td>…. This is the standard structure expected by CSS frameworks and screen readers.
Is my data uploaded for processing?
No. All five parsers and emitters run in plain JavaScript in your browser. No server, no logging, no upload of inputs or outputs.

Explore the category

Glossary

CSV
Comma-Separated Values — a plain-text format where each line is a record and commas separate fields. Quoted fields can contain commas, newlines, and escaped quotes per RFC 4180.
TSV
Tab-Separated Values — like CSV but uses tab characters instead of commas. Common for log dumps and database exports because tabs are rare in cell content.
Markdown table
A pipe-and-dash table syntax popularised by GitHub-Flavoured Markdown. Each row is | cell | cell |, with a header separator row of dashes (|---|---|) below row 1.
HTML table
The standard <table> markup with <thead>, <tbody>, <tr>, <th>, and <td> elements. Used in web pages and rich-text editors to embed structured data.
JSON array of objects
The standard tabular JSON shape: an array where every element is an object with the same (or overlapping) keys. The natural format for APIs that return tabular data.
Auto-detection
Heuristic inference of input format based on structural signals — leading [ or { for JSON, <table for HTML, pipe-dash separator for Markdown, tab characters for TSV, fallback to CSV.