Fill Incomplete CSV Records
Fill empty cells or pad ragged rows in CSV - RFC 4180 parser, selective columns, forward-fill. Free, offline, client-side, instant and secure.
- Runs in your browser
- Nothing uploaded
- Free, no sign-up
Paste a CSV. Choose a fill mode (empty cells,
ragged rows, both, or forward-fill),
a fill value, and (optionally) a 1-based column list to limit the operation.
The parser is RFC 4180 - quoted fields, embedded delimiters, and escaped
quotes round-trip cleanly. Stats line reports rows parsed, cells filled,
ragged rows padded, and detected header column count.
How to Use Fill Incomplete CSV Records
- Paste CSV into the input box. The first row is treated as the header - its column count defines what "complete" means for the rest. Quoted fields with embedded delimiters (e.g.
"Smith, John") are handled correctly. - Pick a fill mode. "Both" (default) handles the two common cases together: any empty/whitespace cell gets the fill value, and any row shorter than the header gets padded out. Use the narrower modes when you specifically want one or the other.
- Try forward-fill for time-series data: empty cells inherit the previous row's value for that column (good for "this row's value is the same as last row"). Falls back to the fill value when there's no previous non-empty value yet.
- Set the fill value. Defaults to
N/A. Use empty string to just pad ragged rows without inventing a sentinel, or0/null/anything text. The literal value goes in - no escaping needed unless your value itself contains the delimiter (which the output stringifier will quote). - Pick delimiter and target columns. Auto-detect samples the first non-empty line. Column list (1-based, e.g.
2,3,5) restricts the fill to just those columns - useful when other columns have meaningful empties. - Click Fill (or press Ctrl/Cmd + Enter). Read the stats line: row counts, columns from header, cells filled, rows padded, empty rows passed through unchanged.
- Copy or download. Output preserves your line ending (auto-detected from input by default, overridable). Saves as
filled.csv.
Frequently Asked Questions
What counts as an “incomplete record”?
Two distinct things, depending on mode. Ragged rows are rows with fewer cells than the header – common when an export script gave up early on certain rows. Empty cells are cells with no content or only whitespace, even though the row’s total cell count matches. The “both” mode handles both at once; the narrower modes let you target just one.
How does the RFC 4180 parser handle quotes?
Quoted fields can contain the delimiter, line breaks, and quotes themselves (escaped by doubling – ""). A row like "He said ""hi""",foo parses to two cells: He said "hi" and foo. The output stringifier round-trips this – cells get quoted only when they contain the delimiter, a quote, or a line-break character.
What does forward-fill do?
For each empty cell in a column, copies the most recent non-empty value from that column. Common in time-series data where a missing value usually means “same as before” (e.g. inventory counts, sensor readings). If no previous non-empty value exists yet (you hit an empty in column N before any non-empty has appeared), the fallback fill value is used.
How do I fill specific columns only?
Type a 1-based, comma-separated list in “Columns to fill” – e.g. 2,3,5 fills only those columns and leaves columns 1 and 4 untouched. Blank field = all columns. Useful when some columns genuinely allow empties (notes, optional fields) and you only want to fill the required ones.
What fill value should I use?
Depends on what your downstream consumer expects. N/A or null for text contexts; 0 for numeric (be careful – zero is a real value); empty string when you only want to pad ragged rows without inventing a sentinel; Unknown for categorical / dropdown contexts. Match whatever your import target treats as “no data”.
Will this preserve my CSV formatting?
Mostly. Header order, delimiter, and quoting strategy match. Line endings default to auto (whatever your input used – LF or CRLF) but can be forced. The only deliberate changes are the cells you asked to be filled and the padding cells added to ragged rows. Cells that didn’t need quoting on input but do on output (because the fill value contained the delimiter, say) will get quoted.
What’s the maximum CSV size?
The parser is single-pass O(chars) and uses a single output array. A few MB of CSV (tens of thousands of rows) processes in well under a second. Browsers cap text-area paste at around 1 MB on some platforms; for bigger files, the tool still runs but the text-area UI gets sluggish – you might want a streaming tool instead.
How does delimiter auto-detect work?
The sniffer reads the first non-empty line, counts occurrences of comma, tab, semicolon, and pipe, and picks the most frequent one. If none of the candidates appear, falls back to comma. Override with the dropdown if your first row has unusual structure (e.g. one column of CSV-shaped data).
Is my CSV uploaded to a server?
No. The page is three static files (HTML, CSS, JS). All parsing, filling, and stringifying runs in the browser via plain string operations – no fetch, no XHR, no analytics, no cookies. You can disconnect the network after page load and the tool still works.
Related Tools
Add Quotes to CSV Online - CSV Quote Wrapper →
Add quotes to CSV fields instantly. Wrap values in double or single quotes, support…
Append CSV Columns →
Easily append columns in CSV files online. Merge datasets quickly with a free, secure…
Convert CSV Delimiter →
Convert CSV Delimiter between comma, tab, semicolon, pipe, or custom delimiters. Free, offline -…
Base64 to CSV Decoder →
Decode Base64 to CSV text - BOM stripped, delimiter auto-detected, URL-safe variant supported. Free,…
Convert CSV Columns to Rows →
Convert CSV Columns to Rows transpose tool. Converts columns to rows with RFC 4180…
Convert CSV Quote Character →
Convert CSV quote characters instantly with our free online tool. Replace single or double…
Convert CSV Rows to Columns →
online CSV transpose tool. Converts rows to columns with RFC 4180 quoted-field support. Client-side,…
Convert CSV to Base64 →
online CSV to Base64 encoder. Standard and URL-safe, MIME line-wrap, UTF-8 safe. Client-side, instant,…
Convert CSV to Text →
online CSV to plain text converter. RFC 4180 quoted-field support, custom joiner, strip quotes.…
Convert CSV to TSV →
online CSV to TSV converter. RFC 4180 parser, embedded-tab escape policy. Client-side, instant, secure…
Convert Text to CSV →
Convert plain text to RFC 4180 CSV (and back) with proper quoting, header rows,…
Convert TSV to CSV →
Convert TSV to RFC 4180 CSV (and back) with proper escaping, header row, multiple…