About CSVUtils

CSVUtils is a local tabular transformation workbench. You load delimited files or JSON, build an ordered recipe of steps, preview the table after each step, and export a verified file with exact row accounting. Engine version 1.0.0.

How it works

  • Static site: there is no application server, upload endpoint, account or analytics. Your data is read with the browser’s file APIs.
  • Parsing and every recipe step run in a Web Worker. A request that exceeds its time budget terminates the worker, which is rebuilt from the original bytes; the last committed result is never partially changed.
  • Every cell is an exact string. Numbers are compared and summed with BigInt-based decimals. Missing, empty and whitespace-only values stay distinct.
  • Your workspace (files, recipe and recent revisions) autosaves to this browser’s IndexedDB unless you choose Private session. Sources above 50 MB are kept in memory only, and the status line says so.

Limits of this release

  • All data is held in memory. Files over 300 MB are refused. Practical limits depend on your device; benchmark figures have not been published.
  • Sort, join, group and pivot need all rows in memory; streaming and disk-backed (OPFS) execution are on the roadmap.
  • Sample data on every page is synthetic and self-authored (version 2026-10-30). It does not describe real people or companies.

Operations

StepRequirementStreamableLoss riskVersion
Trim & caseCSVU-005yeschanges valuesv1
Find & replaceCSVU-006yeschanges valuesv1
Convert type / dateCSVU-012yeschanges valuesv1
Fill missingCSVU-013nochanges valuesv1
Split columnCSVU-007yesnonev1
Merge columnsCSVU-007yesnonev1
Extract with regexCSVU-027yesnonev1
Rename columnsCSVU-008yesnonev1
Select / reorder / dropCSVU-008yesremoves columnsv1
Filter rowsCSVU-009yesremoves rowsv1
Sort (stable)CSVU-010nononev1
DeduplicateCSVU-011noremoves rowsv1
Sample rowsCSVU-030noremoves rowsv1
Append fileCSVU-014yesnonev1
Join fileCSVU-022noreshapesv1
Group & aggregateCSVU-024noreshapesv1
PivotCSVU-025noreshapesv1
UnpivotCSVU-025yesreshapesv1
Validate rulesCSVU-016nononev1
Mask / hashCSVU-031yeschanges valuesv1
Cell editsCSVU-004yeschanges valuesv1

Feature status

29 of 45 tracked requirements are done. Labels: NATIVE — implemented locally in the browser; UNSUPPORTED — deliberately not offered in this release; ROADMAP — planned, not implemented.

IDPhaseCapabilityStatusLabelNotes
CSVU-001R1Dialect/encoding importDoneNATIVEDelimiter/header sniffing, quote, 8 encodings with BOM detection and UTF-8→Windows-1252 fallback; every change reparses the original bytes.
CSVU-002R1Exact string preservationDoneNATIVECells are exact strings; conversion only through explicit steps. Fixture tests for 00123 and 9007199254740993.
CSVU-003R1Malformed-row ledgerDoneNATIVEAccepted/rejected/repaired/padded/widened/blank counts reconcile against logical records; physical lines tracked separately.
CSVU-004R1Grid/source/profile viewsDoneNATIVEVirtualized grid (rows and columns) with provenance labels and stable column IDs; raw source view; full-scope labels.
CSVU-005R1Trim/case/whitespaceDoneNATIVETrim modes, collapse, NBSP/zero-width handling, NFC/NFKC, case; per-column scope; undo via revisions.
CSVU-006R1Find/replaceDoneNATIVELiteral and JS regex (Unicode mode); worker deadline terminates runaway patterns; atomic step application.
CSVU-007R1Split/merge/extract columnsDoneNATIVEDelimiter/regex split with overflow and short-value policies; merge with missing/empty policy; regex capture groups.
CSVU-008R1Rename/reorder/select/dropDoneNATIVEInternal IDs (c1…, s3.1…) stay stable for duplicate and blank headers.
CSVU-009R1Filter builderDoneNATIVE21 typed predicates, all/any, keep/remove; missing values never satisfy comparisons; removed rows in ledger.
CSVU-010R1Stable sortDoneNATIVEText (code point), case-insensitive, exact number, ISO date, natural; blanks first/last; stable ties.
CSVU-011R1DeduplicateDoneNATIVEKey columns, trim/case/whitespace normalization, first/last retention, group preview.
CSVU-012R1Type/date conversionPartialNATIVENumber (dot/comma locale, grouping, half-even rounding), integer, boolean, 12 explicit date formats, failure ledger. Time-zone conversion not offered.
CSVU-013R1Fill missing valuesDoneNATIVEConstant/forward/backward, gap definition, optional grouping, current row order.
CSVU-014R1Append filesDoneNATIVEBy-name or position mapping, extra-column policy, provenance column and row IDs, counts.
CSVU-015R1Recipe pipelineDoneNATIVEVersioned JSON, per-step previews, enable/disable, reorder, undo/redo, rollback, preflight on changed schema.
CSVU-016R1Validation rulesDoneNATIVERequired/not-blank/unique/range/enum/pattern/max-length/type rules; report, flag column or reject; scorecard.
CSVU-017R1Column profilingDoneNATIVEExact over all rows; missing/empty/whitespace, distinct (capped at 200k, disclosed), exact numeric sum/min/max, leading zeros, >2^53, ambiguous dates.
CSVU-018R1Export dialect/optionsDoneNATIVEDelimiter, quoting, CRLF/LF, UTF-8/UTF-16LE, BOM, header, null convention, scope; output reparsed and compared value by value before download.
CSVU-019R1Formula-injection handlingDoneNATIVEExplicit raw vs apostrophe-mitigated choice with counts of risky and changed values.
CSVU-020R1CSV↔JSON/JSONLDoneNATIVELossless JSON parser (number lexemes kept), flattening options, duplicate/blank key mapping, numbers-as-strings default, nesting.
CSVU-021R1Row provenance reportDoneNATIVEsource:record IDs on every row through joins/appends/unpivots; provenance CSV with recipe revision and engine version.
CSVU-022R2JoinsDoneNATIVEInner/left/right/full, multi-key, normalization, exact cardinality plan, many-to-many block, row limit, count verification.
CSVU-023R2ReconciliationPartialNATIVEKeyed compare with exact/trim/case modes and declared numeric tolerance. No interactive match-review workflow yet.
CSVU-024R2Group/aggregateDoneNATIVEcount, non-blank, distinct, sum, mean, min, max, first, last, concat with BigInt decimals and half-even means.
CSVU-025R2Pivot/unpivotDoneNATIVEDuplicate-cell aggregation with findings, absent-cell fill policy, column-count preflight.
CSVU-026R2Window/rank operationsNot doneROADMAPNot implemented.
CSVU-027R2Regex extractionDoneNATIVENamed/numbered groups, absence policy, worker deadline, test bench.
CSVU-028R2Date/time enrichmentNot doneROADMAPNo calendar/time-zone enrichment.
CSVU-029R2Dataset diffDoneNATIVEKeyed or positional; duplicate-key conflicts reported; field-level changes; CSV report.
CSVU-030R2Sampling/splittingDoneNATIVESeeded random, first N, every Nth, stratified; split by value or row count to ZIP with row-count check.
CSVU-031R2Anonymization helpersPartialNATIVEMask, truncate, salted SHA-256 with explicit re-identification warnings. No generalization/k-anonymity.
CSVU-032R2Local SQL workspaceNot doneUNSUPPORTEDNo qualified exact, network-free engine; /csv-sql explains and offers query-style recipes.
CSVU-033R2Batch processingNot doneROADMAPOne primary input per recipe run.
CSVU-034R3Bounded streaming recipesNot doneROADMAPRegistry records streamability per operation; execution is in-memory.
CSVU-035R3Local cleanup suggestionsNot doneROADMAPProfile shows type hints only.
CSVU-036XUnlimited files / universal inferenceNot doneUNSUPPORTEDExcluded by design; 300 MB refusal and 50 MB autosave limit are stated.
CSVU-101R2Conditional derived columnsNot doneROADMAP
CSVU-102R2Lookup enrichment tablesPartialNATIVEAchievable with a left join on a loaded lookup file; unmatched codes stay missing.
CSVU-103R2Fuzzy duplicate suggestionsNot doneROADMAP
CSVU-104R2Frequency tablesPartialNATIVETop values in profile (exact); full frequency table via Group & aggregate.
CSVU-107R2Regex test benchDoneNATIVESeparate worker, 1 s deadline, custom adversarial input.
CSVU-108R2Recipe parameterizationNot doneROADMAP
CSVU-110R3Data quality scorecardDoneNATIVEPer-rule checked/passed/failed counts, critical rules; no weighted score.
CSVU-114R3Export compatibility presetsDoneNATIVERFC 4180, spreadsheet UTF-8+BOM, Unix, TSV, semicolon presets with notes.
CSVU-105/106/109/111/112/113/115R2–R3Outliers, units, conflict resolver, incremental append, external sort, crosstab reports, audit replayNot doneROADMAPNot implemented.

Questions about a specific task? Each workbench page explains its behavior: start with cleaning or recipes.