Neatbo.

CSV and JSON guide: compare, join, pivot and convert

Prepare CSV, JSON and Excel data, compare exports by key, join lookup tables and build pivots. Check headers, types, row counts and empty values with examples.

Choose an operation for your task

Prepare CSV, JSON and Excel data, compare exports by key, join lookup tables and build pivots. Check headers, types, row counts and empty values with examples.

Which operation fits?
Your taskWhere to start
Compare two exportsImport or paste two CSVs up to 1 MiB each; compare by a nonblank unique key and download JSON/CSV differences
Add lookup fieldsJoin a lookup table with unique keys and review unmatched rows
Summarize or split a deliveryPivot one metric at a time after checking types; split by group value into a ZIP with a file map

Work in order and retain the original

Validate one small export first. Reconcile by a stable key, inspect duplicate or missing keys, then join approved lookup data. For a pivot, choose one row group, one column group and one aggregation per run. Count uses records; sum, mean, minimum and maximum require a valid numeric value in every source row. To split a CSV, choose a nonblank group-value column; the ZIP keeps one header-bearing CSV per value and a manifest linking exact values to numbered filenames and row counts.

Representative workflow and expected result
001,Ada → 001,Ada Lovelace is a changed record, not a deletion plus insertion. A reordered unchanged table should have no changed cells.

Separate processing success from acceptance

Check row counts, unmatched keys, leading zeroes, quoted commas and large numeric tokens. Spreadsheet-safety handling and a valid CSV parser are separate concerns.

Before you finish

Expand a tool below for its steps, options and limits. Choose the tools needed for your task; you do not need to use every one.

  • Check row counts, unmatched keys, leading zeroes, quoted commas and large numeric tokens. Spreadsheet-safety handling and a valid CSV parser are separate concerns.
  • Reopen the download and compare it with the example and the meaning of the input.
  • When an input exceeds the stated boundaries, retain it and split the task or use a suitable processor; renaming an extension does not make it compatible.

Extract static tables, then check field rules

Copy a static HTML table or open a local HTML export before converting it to CSV. With several outer tables, enter the intended table number. Nested tables, merged cells and embedded controls are rejected; a conversion should not silently move or drop data. In the reverse direction, CSV cells become escaped HTML text.

Use the field checker when the receiver requires specific types or values. Paste the fields JSON with required, unique, enum or exact numeric bounds for the columns you intend to check. Only named columns are validated. Inspect record and physical start-line positions, then keep report.json together with valid.csv and rejected.csv. Spreadsheet-safety prefixes affect CSV exports, while the JSON report preserves original values.

Prepare legacy exports and review spreadsheet formulas

For fixed-width exports, supply code-point widths explicitly and retain padding during CSV extraction. Byte layouts and display widths are different contracts. CSV-to-fixed output pads on the right and rejects values that cannot fit one physical record.

Before moving an XLSX workbook, inventory supported ordinary formulas across visible and hidden sheets. Raw caches may be stale or empty; this is not a calculation engine. When drafting a CSV table, keep TEXT by default, review sample suggestions separately, and confirm selected types in the receiving database.

References

Tools in this category

Expand a tool to see its steps, options and supported formats, then open its workspace.

CSV to JSONTurn your table into ready-to-use data.

Parse quoted CSV fields into a JSON array of objects. Cells stay strings so identifiers, leading zeroes and large numeric-looking values are not silently altered.

Steps

  1. Paste content into “CSV input” or choose a local file.
  2. Review Delimiter before selecting “Convert to JSON”.
  3. Review the JSON result, then use the available copy or download controls.

Available options

Delimiter
Comma · Tab · Semicolon · Vertical bar
First row contains headers
On by default

Capabilities and limits

  • CSV files are limited to 10 MiB and 200,000 cells; pasted input is limited to 1 MiB. All JSON cell values remain strings.
Open CSV to JSON →
JSON to CSVTurn JSON records into a CSV table.

Export a JSON object array to CSV using the union of object keys. Exact JSON numeric tokens are retained; nested structures become JSON text, and formula-like strings are escaped by default.

Steps

  1. Paste content into “JSON input” or choose a local file.
  2. Review Delimiter before selecting “Convert to CSV”.
  3. Review the CSV result, then use the available copy or download controls.

Available options

Delimiter
Comma · Tab · Semicolon · Vertical bar
Prefix formula-like cells for spreadsheet safety
On by default
Include UTF-8 BOM
Off by default

Capabilities and limits

  • Pasted JSON is limited to 1 MiB, files to 10 MiB and output to 200,000 cells. Nonempty object arrays are required. Formula-like strings and headers gain an apostrophe; JSON numbers retain exact tokens. Spreadsheet apps may remove that prefix after resaving.
Open JSON to CSV →
View CSVA clear look at your data, no spreadsheet app needed.

Inspect CSV in a paginated, read-only table after real parsing. Quoted delimiters, embedded newlines and Unicode are supported; inconsistent row widths are reported.

Steps

  1. Paste content into “CSV input” or choose a local file.
  2. Review Delimiter before selecting “View table”.
  3. Check the table headers and rows against your source. Use the page controls when there are more than 100 data rows.

Available options

Delimiter
Comma · Tab · Semicolon · Vertical bar
First row contains headers
On by default

Capabilities and limits

  • CSV files are limited to 10 MiB and 200,000 cells; pasted input is limited to 1 MiB. This tool previews without changing the original.
Open View CSV →
Clean CSVChoose how to remove duplicate records or empty rows.

Deduplicate CSV rows using all columns or selected comparison keys, keeping the first match. Empty-row removal is optional; the original column order is retained.

Steps

  1. Paste content into “CSV input” or choose a local file.
  2. Choose the delimiter, review the parsed columns, and untick any columns that should not define a duplicate before selecting “Clean CSV”.
  3. Review the CSV result, then use the available copy or download controls.

Available options

Delimiter
Comma · Tab · Semicolon · Vertical bar
First row contains headers
On by default
Remove empty rows
Off by default
Prefix formula-like cells
On by default
Include UTF-8 BOM
Off by default

Capabilities and limits

  • CSV files are limited to 10 MiB and 200,000 cells; pasted input is limited to 1 MiB. Keys are compared exactly, including case and spaces. Formula-like output cells gain an apostrophe by default; spreadsheet apps may remove it after resaving.
Open Clean CSV →
JSON to YAMLConvert JSON to YAML while keeping its structure.

Convert exact JSON scalars, arrays and objects into a safe YAML subset. String values are quoted to avoid accidental YAML type conversion; large integer tokens are preserved.

Steps

  1. Paste content into “JSON input” or choose a local file. A selected file takes priority until removed.
  2. Check your input, then select “Convert to YAML”.
  3. Review the YAML result, then use the available copy or download controls.

Capabilities and limits

  • JSON text is limited to 1 MiB; conversion does not validate downstream YAML configuration semantics.
Open JSON to YAML →
YAML to JSONRead your YAML and convert it to JSON.

Read a bounded YAML subset into JSON without evaluating custom tags. Anchors, aliases, merge keys and multiple documents are rejected; duplicate keys are errors.

Steps

  1. Paste content into “YAML input” or choose a local file. A selected file takes priority until removed.
  2. Check your input, then select “Convert to JSON”.
  3. Review the JSON result, then use the available copy or download controls.

Capabilities and limits

  • YAML text is limited to 1 MiB; review types and structure after JSON conversion.
Open YAML to JSON →
Excel to CSVChoose an Excel worksheet and export it as CSV.

Read one selected XLSX worksheet into CSV. Shared strings and cached formula results are read locally; formulas are never executed and missing caches require explicit consent.

Steps

  1. Choose the local .xlsx file. The working copy stays in this browser.
  2. Review Worksheet name (blank uses the first), Delimiter before selecting “Export CSV”.
  3. Review the CSV result, then use the available copy or download controls.

Available options

Worksheet name (blank uses the first)
Enter as needed

Load worksheet names first, then choose the sheet to export. Each run exports one worksheet.

Delimiter
Comma · Tab · Semicolon · Vertical bar
Prefix formula-like cells for spreadsheet safety
On by default
Allow missing formula caches as empty cells
Off by default
Include UTF-8 BOM
Off by default

Capabilities and limits

  • Document packages are limited to 20 MiB, 2,000 entries and 100 MiB expanded; macros and external relationships are not executed.
  • CSV uses stored cell values, not Excel display formatting. Check date, currency and percentage columns before using the export.
Open Excel to CSV →
CSV to ExcelMake an Excel workbook from a CSV file.

Create a real XLSX workbook with editable text cells. Choose whether the first row is a header to freeze it. CSV values stay literal strings, preserving leading zeroes and preventing formula execution.

Steps

  1. Paste content into “CSV input” or choose a local file.
  2. Review Delimiter, Worksheet name, First row is headers and Input encoding before selecting “Create Excel file”.
  3. Review the XLSX result, then download the workbook.

Available options

Delimiter
Comma · Tab · Semicolon · Vertical bar
Worksheet name
Sheet1

Up to 31 characters. Avoid / \ ? * : [ ], apostrophes at either end, and the reserved name History.

First row is headers (style and freeze it)
On by default
Input encoding
UTF-8 · GB18030 · BIG5

Capabilities and limits

  • CSV is limited to 10 MiB and 200,000 cells; output XLSX stores cells as text and does not execute formulas.
Open CSV to Excel →
NDJSON ↔ JSONConvert line-delimited logs to a JSON array, or split an array into records.

Turn NDJSON records into a JSON array, or split a JSON array into one record per line for an import workflow. Choose the direction before adding input. Optionally require every record to be a JSON object. Blank lines in NDJSON are ignored; invalid JSON and duplicate keys are rejected. Number literals are preserved.

Steps

  1. Choose NDJSON → JSON or JSON → NDJSON.
  2. Paste records or choose a local file. For JSON → NDJSON, provide one JSON array.
  3. For object-record imports, select the object-only check. Check the record count and output, then copy or download the converted file.

Available options

Direction
NDJSON → JSON · JSON → NDJSON
Require a JSON object on every line (for object-record imports)
Off by default

Checks record shape in either direction. It does not validate your destination schema.

Capabilities and limits

  • Up to 10,000 records. Blank NDJSON lines are ignored; invalid JSON and duplicate keys are rejected. Number literals are preserved.
  • Processing stays in your browser. Paste up to 1 MiB or choose one file up to 10 MiB. The whole input is processed in memory, so this is not a large-file streaming converter.
Open NDJSON ↔ JSON →
CSV delimiter converterSwitch between commas, tabs, semicolons and pipes while preserving quoted cells.

Convert an existing delimited file to the separator your next system expects. Quoted commas, escaped quotes and line breaks inside cells remain cell values. Check the parsed row and column counts before using the result.

Steps

  1. Choose the current and target delimiters in the workspace. Swap them if needed.
  2. Paste delimited text or choose one local UTF-8 file; only the selected source is converted.
  3. Check the parsed row and column counts, then copy or download the converted CSV/TSV file.

Available options

From
Comma · Tab · Semicolon · Pipe
To
Comma · Tab · Semicolon · Pipe

Capabilities and limits

  • Cell values, including spreadsheet formulas, are preserved; quoting and row endings may be normalized. Review formulas before opening an untrusted result in a spreadsheet.
  • UTF-8 input is processed in your browser: up to 1 MiB pasted text, one 10 MiB file and 200,000 cells. Space-separated text and other quote rules are not supported.
  • The result preview shows the first 12,000 Unicode characters. Copy and download preserve the complete converted text.
Open CSV delimiter converter →
Select CSV columnsKeep the exact CSV fields you need and put them in the required order.

Paste or choose a CSV export, select columns by their actual headers, and arrange the output order before downloading a new CSV. The preview shows the first five data rows; the download contains every row.

Steps

  1. Paste CSV text or choose one UTF-8 CSV/TXT file.
  2. Check the detected delimiter and headers. Select the columns to keep, then use the arrow buttons to set their order.
  3. Run the tool, review the output preview, and copy or download the complete CSV.

Available options

Selected headers
Enter as needed
Input delimiter
Comma · Semicolon · Tab · Pipe

Capabilities and limits

  • One UTF-8 CSV or TXT file up to 10 MiB, or pasted CSV up to 1 MiB. Up to 200,000 cells and 1,000 columns. Headers must be nonempty and unique; every row needs the same width.
  • Input may use comma, semicolon, tab or pipe; output is comma-separated CSV. Values stay text and are not renamed, converted or escaped for spreadsheet formulas.
  • Files and input are processed in this browser. No account needed.
Open Select CSV columns →
Transpose CSVSwap rows and columns in a rectangular delimited table.

Turn each row into a column without assuming a header row. Paste text or choose a UTF-8 file, select its delimiter, preview the shape and download the full CSV.

Steps

  1. Paste a rectangular table or choose one UTF-8 file.
  2. Select the input delimiter, then choose Transpose CSV.
  3. Check the input and output dimensions and the preview; copy or download the complete CSV.

Available options

Input delimiter
Comma · Semicolon · Tab · Pipe

Capabilities and limits

  • Paste up to 1 MiB or use one UTF-8 CSV, TSV or TXT file up to 10 MiB; at most 200,000 cells.
  • Every row must have the same number of columns. Empty and repeated values in the first row are allowed.
  • Processing happens in this browser; possible spreadsheet formulas are preserved as text.
Open Transpose CSV →
Sort CSV rowsSort whole CSV records by one header using text or exact decimal values.

Choose a column from the actual CSV headers, then sort complete records as English text or exact decimal numbers. The header stays first, ties keep their input order, and cell text is preserved.

Steps

  1. Paste a headered table or choose one UTF-8 file, then select its input delimiter.
  2. Choose a header, text or decimal comparison, and ascending or descending order.
  3. Sort the rows, check the first five output rows, then copy or download the complete CSV.

Available options

Sort column
Enter as needed
Compare as
Text · Decimal number
Direction
Ascending · Descending
Input delimiter
Comma · Semicolon · Tab · Pipe

Capabilities and limits

  • Paste up to 1 MiB or use one UTF-8 CSV, TSV or TXT file up to 10 MiB; at most 200,000 cells and 1,000 columns.
  • A nonempty unique header row and equal row widths are required. Numeric mode requires every chosen-column value to be a decimal number.
  • One sort key only. Numeric mode accepts optional signs, decimal points and scientific notation; a nonzero value’s normalized exponent has at most 64 digits. Dates, thousands separators and blank numeric cells are not parsed.
  • Table headers, preview cells and displayed column or filter values show at most 240 Unicode characters, followed by an ellipsis when shortened. Metadata JSON previews show the first 20,000 Unicode characters when limited; use the complete metadata JSON copy button for the full document. CSV copy and download remain complete.
Open Sort CSV rows →
Filter CSV rowsFilter CSV by a named column with exact, contains or not-equals text matching.

Keep complete CSV records when one selected column matches your text condition. Preview both kept and excluded rows before downloading.

Steps

  1. Paste a headered CSV, TSV or delimited table, or choose a UTF-8 file.
  2. Choose the input delimiter, an actual column header, a condition and comparison text. Optionally ignore letter case.
  3. Filter records, check the kept and excluded previews, then copy or download the complete filtered CSV.

Available options

Column
Enter as needed
Match value
Enter as needed
Match
equals · contains · not-equals
Ignore letter case
Off by default
Input delimiter
Comma · Semicolon · Tab · Pipe

Capabilities and limits

  • Use a unique, nonempty header row and equal row widths, up to 1,000 columns and 200,000 cells. Paste up to 1 MiB or upload a UTF-8 file up to 10 MiB.
  • Matches are literal text, case-sensitive by default; surrounding spaces remain significant. Ignore case compares lowercased strings, without Unicode case folding or language-specific matching. Blank equals and not-equals values are supported; contains needs a nonempty value.
  • Files and input are processed in this browser. No account needed.
  • Table headers, preview cells and displayed column or filter values show at most 240 Unicode characters, followed by an ellipsis when shortened. Metadata JSON previews show the first 20,000 Unicode characters when limited; use the complete metadata JSON copy button for the full document. CSV copy and download remain complete.
Open Filter CSV rows →
Merge CSV filesAppend two pasted CSV tables or 2–20 files with matching headers into one table.

Combine CSV records vertically, keeping one header row. Paste two tables or choose multiple files, verify their headers and order, then download the complete result.

Steps

  1. Paste two headered tables or choose 2–20 UTF-8 CSV, TSV or TXT files in the order you want.
  2. Choose the input delimiter and confirm every source has the same column names. Reorder selected files with the arrows if needed; reordered columns are flagged before merging.
  3. Merge, check the row count from each source and the output preview, then copy or download the complete CSV.

Available options

Input delimiter
Comma · Semicolon · Tab · Pipe

Capabilities and limits

  • Every source needs the same unique, nonempty column names and equal row widths. Columns in a different order are aligned by name to the first source. This appends rows; it does not join records by an ID or add different columns.
  • Paste two tables of up to 1 MiB each, or choose 2–20 UTF-8 files up to 10 MiB each and 30 MiB combined. The result must also fit 200,000 cells, 1,000 columns and 20 MiB; meeting the input limits does not guarantee an export.
  • Files and input are processed in this browser. No account needed.
  • Table headers, preview cells and displayed column or filter values show at most 240 Unicode characters, followed by an ellipsis when shortened. Metadata JSON previews show the first 20,000 Unicode characters when limited; use the complete metadata JSON copy button for the full document. CSV copy and download remain complete.
Open Merge CSV files →
Statistics calculatorCalculate list mean, median, variance and standard deviation, or exact decimal statistics for a CSV column.

Choose a number list for population or sample variance and standard deviation. Choose CSV to analyze one numeric column without converting decimal strings to floating-point numbers; check blank and missing cells before exporting the report.

Steps

  1. Choose number list or CSV column. Paste numbers for a list; for CSV, paste a table or choose one UTF-8 file.
  2. For a list, choose population or sample. For CSV, choose delimiter, header setting and a numeric column; check blank, missing and invalid cells.
  3. Calculate and inspect the result. Copy the list standard deviation or the complete JSON report; download the full JSON. Switching input modes keeps each input in this tab and clears the prior result.

Available options

Input mode
Number list · CSV column

List mode uses floating-point variance; CSV mode preserves exact decimal strings for a selected column.

Numeric column
Enter as needed
Header row
First row is a header · No header row
Input delimiter
Comma · Semicolon · Tab · Pipe
Missing-value markers
Enter as needed

Capabilities and limits

  • List: up to 10,000 finite numbers and 100,000 characters; commas, semicolons, whitespace and scientific notation are accepted. No headers, units or thousands separators. Magnitudes must be at most 1e100; nonzero values that underflow to zero are rejected.
  • List variance and standard deviation use floating-point arithmetic and the selected population or sample divisor. CSV mode provides count, minimum, maximum, sum, mean and median; it does not calculate CSV variance or a maximum-minus-minimum range.
  • CSV: up to 1 MiB of pasted UTF-8 text or one 10 MiB UTF-8 CSV/TSV/TXT file, 200,000 cells including a header row, and 1,000 columns. Headers must be unique and nonempty when used; every row must have equal width.
  • CSV numeric cells accept signed decimals or scientific notation: at most 110 characters per token, 100 coefficient digits and an exponent of at most three digits with magnitude at most 100. Blank cells are counted separately; exact, case-sensitive missing markers are optional (up to 20 markers, 100 characters each and 2,048 characters in the marker input).
  • CSV minimum, maximum, sum and median are exact decimal strings. The mean is rounded half away from zero when required to at least 18 decimal places, or the largest input scale if greater; meanRounded and meanDecimalPlaces record this. Five original numeric records are previewed, with all statistics and counts in the JSON report. Processing stays in this browser.
Open Statistics calculator →
Markdown table converterConvert CSV or JSON records to Markdown tables and export Markdown tables back to CSV.

Turn a headered CSV or JSON object array into a GitHub-style Markdown table, or bring a Markdown pipe table back to CSV. For JSON nested in a document, select the array path. Inspect detected columns and save the complete result.

Steps

  1. Choose CSV → Markdown, Markdown → CSV or JSON → Markdown in the workbench, then paste content or choose one UTF-8 file.
  2. For CSV, select its delimiter. For nested JSON, enter the array path. For Markdown output, optionally right-align numeric columns. Check detected headers, dimensions and any input error.
  3. Convert, review the first output rows and text preview, then copy or download the complete Markdown or CSV.

Available options

Conversion direction
CSV → Markdown · Markdown → CSV · JSON → Markdown
CSV input delimiter
Comma · Semicolon · Tab · Pipe
Markdown alignment
Standard columns · Right-align numeric columns
Array path
Enter as needed

Capabilities and limits

  • Supports one table at a time, up to 200,000 cells and 1,000 columns; pasted text is limited to 1 MiB and a UTF-8 file to 10 MiB.
  • CSV needs unique nonempty headers and equal row widths. Choose comma, semicolon, tab or pipe as its input delimiter.
  • Markdown input needs a header and alignment row; outer pipes are optional. Escaped pipes and backslashes are decoded. Short rows gain empty cells; extra cells are rejected.
  • JSON input must select a nonempty array of objects with unique keys, either at the top level or through a JSON Pointer path. Nested values become compact JSON text; large numeric tokens are preserved.
  • Generated Markdown escapes literal formatting and uses <br> for cell line breaks. Markdown-to-CSV keeps inline markup as text except <br> line breaks. Spreadsheet-like formulas in CSV are preserved and flagged.
Open Markdown table converter →
Flatten and restore JSONFlatten nested JSON into reversible JSON Pointer paths, or restore a dot-key map as nested objects.

Flatten nested JSON into a path map that can be restored in the same workspace. Restore a conventional dot-key map when your input came from another system. The reversible output records container types so empty arrays, numeric object keys and large number tokens survive the round trip.

Steps

  1. Choose Flatten, Restore JSON, or Restore dot-key map above the input; paste JSON or select a UTF-8 .json file.
  2. Review the detected container and leaf counts, then run the conversion.
  3. To verify a round trip, select ‘Use result as restore input’, restore it and save the complete JSON.

Available options

Task
Flatten · Restore · Restore dot-key map

Capabilities and limits

  • Keep both containers and values maps for restoration; a values-only map loses empty containers and array types.
  • JSON preserves numeric lexemes and rejects duplicate keys; check the field structure expected by your target system.
  • Restoration preserves JSON values and container types, but whitespace and object-key order may change.
  • Files and input are processed in this browser. No account needed.
  • Restore JSON accepts this tool’s containers/values envelope. Restore dot-key map accepts scalar values and creates objects only; dots in literal key names and array types are ambiguous. Input is limited to 200,000 JSON nodes and 128 nesting levels.
Open Flatten and restore JSON →
JSON Pointer extractorRead one value using a precise RFC 6901 path.

Extract one exact value from nested JSON using an RFC 6901 pointer. Browse keys and array indexes to build the path, or paste a pointer you already have. The result remains valid JSON and preserves large number tokens.

Steps

  1. Paste JSON or choose a UTF-8 .json file.
  2. Browse child keys or enter an exact pointer such as /user/name. Check the selected path and value type.
  3. Extract the JSON value. Copy the complete JSON, copy plain text if it is a string, or download the result.

Available options

JSON Pointer
Enter as needed

Capabilities and limits

  • Selects one exact location. Wildcards, filters, JSONPath expressions and # fragment notation are not accepted.
  • An empty pointer selects the whole document; / selects a key with an empty name. Escape ~ as ~0 and / as ~1. Missing paths fail instead of returning null.
  • JSON preserves number tokens and rejects duplicate keys. Pasted text is limited to 1 MiB, one UTF-8 file to 10 MiB, and output to 20 MiB.
  • Files and input are processed in this browser. No account needed.
Open JSON Pointer extractor →
Merge JSON objectsApply an override object while retaining untouched nested keys.

Merge two JSON objects for layered configuration. The second object takes priority: matching objects combine recursively, while arrays, scalars and null replace the earlier value. Check the replacement paths before copying the result.

Steps

  1. Paste the base and override JSON objects, or choose two JSON files in that order.
  2. Check that both inputs are objects. Review the paths replaced by the second object and any array conflicts.
  3. Merge the objects, inspect the JSON preview, then copy or download the complete result.

Capabilities and limits

  • Both top-level inputs must be JSON objects with unique keys. Matching nested objects combine recursively; arrays and other values are replaced by the second input.
  • A null in the second object is kept as null; it does not delete a key. This is a recursive object merge, not RFC 7396 JSON Merge Patch.
  • Paste two objects (up to 1 MiB each) or choose exactly two UTF-8 JSON files (up to 10 MiB each). JSON has a 200,000-node and 128-level limit; output is limited to 20 MiB. Numeric tokens are preserved.
  • Files and input are processed in this browser. No account needed.
Open Merge JSON objects →
CSV comparison by keyCompare two small CSV exports by a unique key and inspect added, removed and changed cells.

Paste or import old and new UTF-8 CSV tables, choose a shared unique key, then review added, removed and changed records by column. Record order does not affect the comparison.

Steps

  1. Paste or import the old and new UTF-8 CSV, each with a header row; confirm row and column counts.
  2. Choose a shared key column and correct blank or duplicate keys before comparing.
  3. Review added, removed and changed counts, inspect changed cells and schema differences, then download the JSON or CSV reports.

Available options

Key column
id

Enter a column present in both tables. Keys must be nonempty and unique within each table, such as an order ID.

Capabilities and limits

  • Each side is limited to 1 MiB of UTF-8 CSV text, with at most 200,000 parsed cells. Both tables need headers and a shared key column whose values are nonblank and unique within each side.
  • Key and cell values are compared as exact strings: leading zeroes, spaces and letter case are significant. Only shared non-key columns are compared cell by cell; added and removed column names are listed separately.
  • The page previews up to 100 added/removed records, 200 changed cells and 12 columns; complete differences can be downloaded as JSON and, when applicable, separate CSV files. CSV exports prefix formula-like values for safer spreadsheet opening; JSON preserves the source strings. No file is uploaded or automatically merged into a master table.
  • JSON exports complete added/removed records and every changed shared cell; changed records are not exported as paired full old/new rows.
Open CSV comparison by key →
CSV lookup and joinJoin two small CSV tables by selected key columns. Preview matches and choose left, inner or full output.

Paste or import two UTF-8 CSV tables, select a key column in each and choose which unmatched rows to retain. Key values stay as strings, including leading zeroes.

Steps

  1. Paste or import the main and lookup UTF-8 CSV tables, then confirm each row and column count.
  2. Select the main and lookup key columns. Resolve blank main keys or blank/duplicate lookup keys; inspect the preflight match counts.
  3. Choose left, inner or full join, run it, check matched and unmatched counts, then download the complete CSV.

Available options

Main key
id
Lookup key
id

Lookup keys must be unique. Check that leading zeroes, spaces and capitalization match the main table.

Join
Left · Inner · Full

Left join keeps main-table rows; inner join keeps matches; full join also includes unmatched lookup rows.

Capabilities and limits

  • Each CSV is limited to 1 MiB of UTF-8 text and 200,000 parsed cells. Both need headers. Main-table keys must be nonblank and may repeat; lookup-table keys must be nonblank and unique.
  • Keys match as exact strings, including leading zeroes, spaces and letter case. Left keeps all main rows; inner keeps only matches; full also appends unmatched lookup rows. Missing lookup fields appear blank, which can also be a real empty source value.
  • Output has at most 200,000 cells and downloads as CSV. The page previews up to 200 rows; the download contains all output rows. Formula-like cells gain an apostrophe in the CSV for safer spreadsheet opening. No typed or multi-column join, automatic master-table update, or large-file workflow.
Open CSV lookup and join →
CSV pivot tableGroup records into a cross-tab and calculate sums, counts, means, minima or maxima for each group.

Paste or import one UTF-8 CSV, choose its row, pivot and numeric value columns, and download a cross-tab. Count uses rows and needs no value column.

Steps

  1. Paste a CSV or import a UTF-8 .csv file and check the detected rows and columns.
  2. Select one row group, one pivot column and an aggregation. Select a numeric value column unless counting rows.
  3. Inspect the preview, then download the full CSV. A combination without records is blank; a real zero is 0.

Available options

Row grouping
team
Column grouping
month
Value column
amount

Sum, mean, minimum and maximum use a numeric column. Review empty and nonnumeric values before aggregating.

Aggregation
Sum · Count · Mean · Minimum · Maximum

Capabilities and limits

  • One CSV up to 1 MiB and 200,000 input cells; up to 500 pivot columns and 200,000 output cells. Blank group values and invalid numeric values are rejected. Count ignores the value column.
  • Sum, minimum and maximum use exact decimal arithmetic; repeating means retain at least 18 decimal places and are flagged as rounded. Only the first 200 output rows appear in the preview; download the full CSV. Formula-like labels are prefixed with an apostrophe in the download.
  • Choose one row group, one pivot column and one aggregation. Labels follow first-seen order; missing combinations stay blank and real zero is 0. No totals or compound dimensions.
Open CSV pivot table →
Split CSV by columnSeparate one CSV into files for each distinct group and download a manifest mapping group values to output filenames.

Paste or import one UTF-8 CSV, choose a grouping column from its header, then download a ZIP with one CSV per group and a filename manifest.

Steps

  1. Paste a CSV or import a UTF-8 .csv file and review its detected rows and columns.
  2. Select the grouping column from the header and check the number of groups before splitting.
  3. Download the ZIP and keep its manifest.json. Sum manifest row counts to reconcile with the source.

Available options

Grouping column
team

For example, department. Keep the output manifest to match original group values with generated filenames.

Capabilities and limits

  • One CSV up to 1 MiB and 200,000 parsed cells; at most 100 nonblank groups. Exact strings, including leading zeroes, define the groups. Blank group values are rejected.
  • The ZIP contains a header-bearing CSV per group plus manifest.json. Numbered filenames avoid group-label path and collision problems; the separate manifest download maps exact labels to files and row counts. CSV cells that resemble formulas gain an apostrophe.
Open Split CSV by column →
NDJSON validation and quarantineValidate pasted or imported NDJSON line by line; download valid records and a report with every rejected original line.

Paste NDJSON or choose one UTF-8 .ndjson/.jsonl/.txt file. Each nonblank line is one complete JSON value. Review accepted, rejected and blank counts, then download the two outputs separately.

Steps

  1. Choose Paste NDJSON or Choose NDJSON file. The selected source alone is processed.
  2. Validate one JSON value per line; inspect accepted, rejected and blank counts and the first 20 rejected originals.
  3. Download valid.ndjson and rejected.json separately. Repair rejected originals before treating the accepted file as complete.

Capabilities and limits

  • Pasted text is limited to 1 MiB; one UTF-8 file is limited to 10 MiB and 50,000 lines. A final newline ends the last record and is not counted as a blank line.
  • Invalid lines keep their original text and line number in rejected.json. Empty lines are counted separately. The tool does not repair broken or split log records.
  • Large streaming logs such as 2 GB journald exports exceed this browser workspace; use a streaming command-line workflow for those.
Open NDJSON validation and quarantine →
HTML table and CSV converterExtract a selected static HTML table as CSV, or build a safe HTML table from CSV cells.

Paste the table markup or open a local HTML export. Choose the table number when there is more than one, review the cells, and download CSV. The reverse direction creates HTML with every cell escaped as text.

Steps

  1. Select HTML to CSV or CSV to HTML, then paste source or open a local UTF-8 file.
  2. For HTML with several outer tables, enter the required table number. Set whether the first row is a header and choose the CSV spreadsheet-safety setting.
  3. Run the conversion, inspect the data or HTML preview, then copy or download the full result. Resolve unsupported spans or nested tables in the source before retrying.

Available options

Conversion
HTML → CSV · CSV → HTML
HTML table number
Enter as needed

Leave blank for one table; with several outer tables, enter the number starting at 1.

First row is a header
On by default
Spreadsheet-safe CSV
On by default

Add an apostrophe before formula-like cells in CSV downloads. JSON reports retain original values.

Capabilities and limits

  • One UTF-8 input or file, at most 1 MiB, 200,000 cells and 128 nested HTML levels. Selected files take precedence. CSV rows must have consistent widths. The CSV result previews 200 data rows; the download is complete. HTML parser errors are rejected; valid optional end tags are accepted.
  • The HTML input is static source, not a webpage URL or script-generated table. Only outer tables are selectable. Multiple tables require an explicit table number, starting at 1. Nested tables, non-unit rowspan/colspan and embedded form/object/SVG/canvas content are rejected.
  • Cells use decoded HTML text: script/style/template/noscript text is omitted; br and common paragraph blocks produce line breaks. Outer cell whitespace is trimmed. CSS visibility, form values, link URLs and image alt text are not exported.
  • The first-row header option controls preview and generated HTML. Spreadsheet safety is on by default for CSV downloads and prefixes formula-like cells with an apostrophe; turn it off only when exact text is required. CSV to HTML escapes all cell markup and never emits active input code.
Open HTML table and CSV converter →
CSV field constraint checkerCheck CSV fields against local column rules and download valid records, rejected records and a cell-level issue report.

Define the selected columns as string, integer, decimal or Gregorian date. Check required values, exact enumerations, uniqueness and numeric bounds without changing the source cells.

Steps

  1. Paste or open a UTF-8 CSV with unique headers, then paste the column-rules JSON into the second input.
  2. Select the fields and constraints you need. Use string min/max bounds for numeric types and exact string values for enumerations.
  3. Run the check, inspect record/line/column/code/value issues, then download the report and both record subsets. Fix the source and rerun; columns without rules were not checked.

Available options

Spreadsheet-safe CSV
On by default

Add an apostrophe before formula-like cells in CSV downloads. JSON reports retain original values.

Capabilities and limits

  • One UTF-8 CSV or pasted input, at most 1 MiB, 10,000 data records, 100 columns and 200,000 cells. A selected file takes precedence over pasted input. Rules JSON is limited to 1 MiB and 100 selected fields. Up to 40,000 issues can be reported; larger reports require a smaller input.
  • CSV needs unique, nonempty headers and consistent row widths. Rules use {"fields":[{"name":"age","type":"integer","required":true,"min":"0"}]}. Types are string/integer/decimal/date; optional constraints are required, unique, enum, min and max. Unknown rules or column names fail. Unselected columns pass through without validation.
  • Numeric min/max values are JSON strings and compare as exact decimals. Numbers allow at most 100 digits and exponents from -100 to 100. Integer cells use decimal integer notation; surrounding whitespace is trimmed only for numeric/date checks. Dates must be YYYY-MM-DD in Gregorian years 0001–9999.
  • Blank or whitespace-only optional cells skip constraints. Enumerations and uniqueness compare original nonblank text exactly, including leading zeroes and spaces; every duplicate receives an issue. Record includes the header as record 1; line is the physical start line even when quoted cells contain line breaks.
  • Downloads include report.json, valid.csv, rejected.csv and issues.csv. The JSON preserves original values; CSV spreadsheet safety defaults to adding an apostrophe before formula-like cells. The page previews 200 issues. Rules never execute code, formulas, regular expressions or database operations.
Open CSV field constraint checker →
Fixed-width and CSV converterSplit fixed-width records by explicit Unicode code-point widths, or pad CSV fields into a fixed-width text file.

Convert a legacy text export without trimming its field spaces. Supply the field names and widths, inspect complete records, and download the receiving format.

Steps

  1. Choose a direction and paste the records, or open a local UTF-8 export.
  2. Enter widths JSON in field order. Count code points and include meaningful spaces; do not infer widths from a proportional-font preview.
  3. Check the field preview and spreadsheet-protection setting, then copy or download the complete CSV/text result.

Available options

Conversion
Fixed-width → CSV · CSV → Fixed-width
Protect CSV cells in spreadsheets
On by default

Capabilities and limits

  • One UTF-8 file or pasted source up to 1 MiB, plus widths JSON up to 1 MiB. A selected file takes precedence. At most 10,000 records, 100 fields, 1,000 code points per field and 10,000 per complete record. UTF-8 BOM is omitted.
  • Widths count Unicode code points, not bytes, display columns or grapheme clusters. An emoji is one code point; combining marks count separately. Each fixed-width line must have exactly the declared total width. No leading/trailing spaces are trimmed.
  • The secondary JSON is an array of {name,width} objects with unique nonempty names and positive integer widths. CSV requires the same headers in the same order and at most 200,000 input cells including headers. CSV to fixed-width rejects overflowing or multiline cells, pads on the right with ASCII spaces and uses LF record endings.
  • CSV downloads use spreadsheet protection by default: formula-like cells gain a leading apostrophe. Disable it explicitly when you need unchanged field text. Preview shows up to 200 records; downloads contain every record.
Open Fixed-width and CSV converter →
XLSX formula inventoryList ordinary formulas across workbook sheets with cell addresses, visibility and raw cached values, without recalculating.

Audit a workbook before sharing or moving its formulas. Read every supported worksheet locally, including hidden sheets, then download a searchable inventory.

Steps

  1. Open a local .xlsx workbook, or keep the example checkbox enabled to inspect the provided demo.
  2. Run the inventory and check sheet names, hidden status, formula addresses and cache types. A workbook with no formulas returns an empty valid list.
  3. Download JSON for exact formulas or CSV for a review sheet. Recalculate only in the spreadsheet application if fresh results are needed.

Available options

Use built-in workbook when no file is selected
On by default

Capabilities and limits

  • One unencrypted ordinary .xlsx file up to 5 MiB. At most 2,000 ZIP entries, 25 MiB expanded bytes, 100× compression ratio, 100 worksheets and 10,000 formula cells. A selected file always takes precedence over the example.
  • Supports UTF-8 transitional OOXML worksheet parts and ordinary cell formulas. Shared, array and data-table formulas, formula metadata, macro workbooks, chart-sheet relations and unsupported package forms reject the entire workbook before output.
  • Formulas are not executed or recalculated. Cached values are raw OOXML lexical text with its cell type; they may be stale, absent or empty. A shared-string cache remains its numeric index. Missing-cache count means no <v> element; an empty <v/> is reported as an empty lexical value. No linked files or URLs are fetched.
  • Enable the example checkbox to run the built-in two-formula workbook without a file and download formula-demo.xlsx for inspection. JSON preserves exact formula strings. CSV prefixes formulas for spreadsheet safety; preview shows up to 200 cells, downloads include the full list.
Open XLSX formula inventory →
CSV to SQL DDL draftDraft a quoted CREATE TABLE statement from CSV headers and review sample-based type suggestions without executing SQL.

Prepare a table definition before importing a CSV. Keep every column as text by default, then explicitly confirm a finite type map when the receiving database requires it.

Steps

  1. Paste or open CSV with headers, choose a dialect and set the table name.
  2. Review the default text columns and sample suggestions. If needed, enter a complete explicit column-type JSON map; otherwise keep TEXT.
  3. Download SQL and column-review.json. Confirm types and constraints in the receiving database before separately importing the data.

Available options

SQL dialect
SQLite · PostgreSQL · MySQL
Table name
contacts

Capabilities and limits

  • One UTF-8 CSV file or pasted input up to 1 MiB, at most 100 columns, 10,000 data records and 200,000 CSV cells including headers. A selected file takes precedence. Nonempty unique headers and table/column identifiers up to 128 code points are required; ASCII control characters are rejected.
  • Defaults to nullable TEXT columns. Optional JSON must name every header exactly once, with {type,nullable?}; types are text, integer, decimal, boolean or date. Suggestions from nonblank sample values are displayed separately and never silently applied. Leading-zero identifiers stay text.
  • SQLite uses INTEGER/NUMERIC, PostgreSQL uses BIGINT/NUMERIC, and MySQL uses BIGINT/DECIMAL(65,30) for selected integer/decimal types. Confirm range, precision, date rules and boolean semantics in your target. Table and column names are dialect-quoted; CSV values never appear in SQL.
  • Output is a DDL draft only. No SQL is executed, no database is connected and no indexes, keys or import statements are inferred. Explicit types are not checked against every sample value; use field validation and the target database before importing. The column-review JSON records chosen types, confirmations and sample suggestions.
Open CSV to SQL DDL draft →

Tools used in this article

CSV to JSON →Turn your table into ready-to-use data.JSON to CSV →Turn JSON records into a CSV table.View CSV →A clear look at your data, no spreadsheet app needed.Clean CSV →Choose how to remove duplicate records or empty rows.JSON to YAML →Convert JSON to YAML while keeping its structure.YAML to JSON →Read your YAML and convert it to JSON.Excel to CSV →Choose an Excel worksheet and export it as CSV.CSV to Excel →Make an Excel workbook from a CSV file.NDJSON ↔ JSON →Convert line-delimited logs to a JSON array, or split an array into records.CSV delimiter converter →Switch between commas, tabs, semicolons and pipes while preserving quoted cells.Select CSV columns →Keep the exact CSV fields you need and put them in the required order.Transpose CSV →Swap rows and columns in a rectangular delimited table.Sort CSV rows →Sort whole CSV records by one header using text or exact decimal values.Filter CSV rows →Filter CSV by a named column with exact, contains or not-equals text matching.Merge CSV files →Append two pasted CSV tables or 2–20 files with matching headers into one table.Statistics calculator →Calculate list mean, median, variance and standard deviation, or exact decimal statistics for a CSV column.Markdown table converter →Convert CSV or JSON records to Markdown tables and export Markdown tables back to CSV.Flatten and restore JSON →Flatten nested JSON into reversible JSON Pointer paths, or restore a dot-key map as nested objects.JSON Pointer extractor →Read one value using a precise RFC 6901 path.Merge JSON objects →Apply an override object while retaining untouched nested keys.CSV comparison by key →Compare two small CSV exports by a unique key and inspect added, removed and changed cells.CSV lookup and join →Join two small CSV tables by selected key columns. Preview matches and choose left, inner or full output.CSV pivot table →Group records into a cross-tab and calculate sums, counts, means, minima or maxima for each group.Split CSV by column →Separate one CSV into files for each distinct group and download a manifest mapping group values to output filenames.NDJSON validation and quarantine →Validate pasted or imported NDJSON line by line; download valid records and a report with every rejected original line.HTML table and CSV converter →Extract a selected static HTML table as CSV, or build a safe HTML table from CSV cells.CSV field constraint checker →Check CSV fields against local column rules and download valid records, rejected records and a cell-level issue report.Fixed-width and CSV converter →Split fixed-width records by explicit Unicode code-point widths, or pad CSV fields into a fixed-width text file.XLSX formula inventory →List ordinary formulas across workbook sheets with cell addresses, visibility and raw cached values, without recalculating.CSV to SQL DDL draft →Draft a quoted CREATE TABLE statement from CSV headers and review sample-based type suggestions without executing SQL.