Table Data Converter
Convert pasted or local table data into clean documents with repaired headers and row previews while checking missing cells and spreadsheet formulas.{{ summaryTitle }}
{{ convertedDocument }}
| # | {{ header }} | Copy |
|---|---|---|
| {{ row.index }} | {{ cell.value }} |
| Check | Value | Evidence | Copy |
|---|---|---|---|
| {{ row.label }} | {{ row.value }} | {{ row.detail }} |
A table is more than rows separated by punctuation. Its meaning also depends on which row contains column names, how quoted delimiters are handled, whether blank and missing cells are distinct, and what each destination expects. A clean-looking paste can still shift values into the wrong columns or turn a label into executable spreadsheet input.
Conversion is safest when parsing and serialization are treated as separate jobs. First, the source becomes a rectangular grid with stable column names. Then that grid is written as delimited text, Markdown, JSON, JSON Lines, or HTML. Reviewing the intermediate rows catches alignment mistakes before they become a polished but incorrect document.
| Source family | Structural concern |
|---|---|
| CSV, TSV, and other delimited text | Delimiters inside quoted cells, inconsistent row widths, and ambiguous first rows. |
| JSON and JSON Lines | Records may expose different keys; nested values must be represented without losing their text. |
| Markdown and HTML tables | Separator rows, escaped characters, header cells, and markup must become plain cell values. |
Headers deserve special attention because downstream systems often bind data by name. Blank labels need replacements, duplicates need stable suffixes, and names may need conversion to snake_case or camelCase. Automatic header detection is a convenience, not proof; a first row made of ordinary words can plausibly be either labels or data.
No universal table conversion can infer schema, locale, or business meaning from text alone. Decimal commas, identifiers with leading zeros, line breaks inside cells, and formulas require an explicit decision. A row preview and column-coverage check are therefore part of the conversion, not optional decoration.
How to Use This Tool:
Choose how the source should be parsed before choosing the document needed by the next system.
- Paste the table or load one local text file. Leave Source format on Auto detect for mixed work, or pin CSV, TSV, Markdown, JSON, JSON Lines, HTML, or a custom delimiter when the source contract is known.
- Set Header handling. Use the first row when it contains labels, generate column names when every row is data, or inspect the automatic choice in the audit.
- Choose Target format and the header naming policy. For custom delimited text, enter a one- to four-character delimiter.
- Keep Spreadsheet formula guard on when output may be opened in a spreadsheet. Turn off trimming only when spaces at cell edges are meaningful data.
- Review Row preview, Column coverage, and the conversion warnings before using the converted document. Fix a wrong parser or header choice at the source rather than editing shifted output by hand.
Interpreting Results:
Start with row and column counts. They should match the source after the chosen header row is removed from the data. Missing cells are positions absent from a short row, while blank cells are present but empty; both can look empty in the final document, but they reveal different source problems.
- A renamed-header warning means duplicate or unsafe labels were made unique. Check downstream field mappings before handoff.
- A guarded-cell count means formula-like text was prefixed with an apostrophe. The visible value is preserved for spreadsheet review, but the serialized text has changed deliberately.
- An unclosed-quote warning means the parser reached the end while still inside a quoted field. Correct the source instead of trusting the resulting rows.
- When quoting is disabled, a delimiter or line break inside a cell can make later imports split the record incorrectly.
Technical Details:
The conversion model normalizes line endings, parses the selected syntax into rows, decides how headers are obtained, pads short rows to the widest row, and then serializes one canonical grid. Changing the target format does not change that parsed grid.
Transformation Core:
| Stage | Rule | Material result |
|---|---|---|
| Detect | Prefer recognizable HTML, JSON Lines, JSON, and Markdown structures before scoring comma, tab, semicolon, and pipe delimiters. | A resolved source format and a review note. |
| Parse | Honor doubled quotes in delimited text, ignore a Markdown separator row, decode text from the first HTML table, and collect JSON record keys in encounter order. | Rows of text cells before header handling. |
| Normalize | Promote or generate headers, make names unique, pad short rows, optionally trim cell edges, and substitute the selected missing-cell token. | One rectangular grid with stable column names. |
| Protect | When enabled, prefix cells beginning with =, +, -, @, tab, or carriage return with an apostrophe. |
Formula-like text is less likely to execute when opened in a spreadsheet. |
| Serialize | Apply the target's quoting, escaping, header, and markup rules without reparsing the data. | The converted document plus preview and audit evidence. |
JSON object input may be a single object, an array of objects, or an object containing an array under data, items, results, records, or rows. Values that are themselves objects or arrays are kept as JSON text inside a cell. JSON object output and JSON Lines always use object keys even when the output-header-row option is off.
| Target | Serialization rule |
|---|---|
| Delimited text | Minimal quoting surrounds cells containing the delimiter, a quote, a line break, or leading or trailing whitespace; embedded double quotes are doubled. |
| Markdown | A header and separator row are always required. Pipes are escaped and cell line breaks become <br>. |
| JSON records or JSON Lines | Each row becomes an object keyed by the normalized headers; cell values remain text. |
| JSON row matrix | Rows remain arrays, with an optional header array at the beginning. |
| HTML | Headers and cells are HTML-escaped before being placed in table markup. |
Input is limited to 1,000,000 characters, and a browsed file must be no larger than 1 MiB. Custom delimiters contain one to four characters. The row preview accepts 10 through 1,000 rows; limiting the preview does not truncate the converted document.
Privacy Notes:
The source is read and converted in the browser. It is not sent to a server-side conversion service. Local processing does not make a dataset harmless, so remove secrets and personal data that are unnecessary for the task.
Formula guarding reduces a common spreadsheet risk but is not a complete content-security policy. The receiving spreadsheet, database, documentation system, or API should still validate imported values according to its own rules.
References:
- RFC 4180: Common Format and MIME Type for CSV Files, RFC Editor, October 2005.
- RFC 8259: The JSON Data Interchange Format, RFC Editor, December 2017.
- GitHub Flavored Markdown: Tables extension, GitHub.
- JSON Lines format documentation, JSONLines.org.
- CSV Injection, OWASP Foundation.