User Rating 0.0 β˜…β˜…β˜…β˜…β˜…
Total Usage 0 times
Is this tool helpful?

Your feedback helps us improve.

β˜… β˜… β˜… β˜… β˜…

About

CSV files encode tabular data as comma-delimited rows. Extracting a single column into a usable list format requires correct parsing of quoted fields, escaped delimiters, and line-break variants (CRLF vs LF). A naive split on commas fails when fields contain literal commas wrapped in double quotes - a pattern defined by RFC 4180. This tool implements a compliant state-machine parser that handles quoted fields, embedded newlines, and escaped quotes ("") before converting selected column data into your target format. It supports HTML ordered and unordered lists, Markdown, numbered plain text, and JSON arrays.

Incorrect CSV extraction leads to truncated data, merged fields, or broken markup. This matters when generating navigation menus from spreadsheet exports, populating CMS content, or feeding cleaned data into scripts. The tool preserves original field values without mutation. Limitation: files exceeding 50MB may cause browser memory pressure. For CSVs with non-UTF-8 encoding, convert to UTF-8 first.

csv to list csv converter csv parser rows to list csv to html list csv to markdown csv to json array text formatting

Formulas

The CSV parser operates as a finite state machine with three states: S0 (field start), S1 (inside quoted field), and S2 (inside unquoted field). Transitions are governed by the current character c and the configured delimiter d.

{
S0 β†’ S1 if c = """S0 β†’ S2 if c β‰  d ∧ c β‰  "\n"S1 β†’ S0 if c = """ ∧ cnext β‰  """S2 β†’ S0 if c = d ∨ c = "\n"

The total number of list items N extracted from a CSV with R data rows (excluding header if toggled) and column index j:

N = Rβˆ‘i=1 valid(rowi[j])

Where valid(field) returns 1 if the field is non-empty after trimming, 0 otherwise (when "skip empty" is enabled). d = input delimiter character. R = total data rows. j = zero-indexed column selection.

Reference Data

Output FormatSyntax ExampleUse CaseSupports NestingMachine-Readable
HTML Unordered List<ul><li>Item</li></ul>Web pages, CMS contentYesYes (DOM)
HTML Ordered List<ol><li>Item</li></ol>Ranked lists, stepsYesYes (DOM)
Markdown Bulleted- ItemREADME files, docsYes (indent)No
Markdown Numbered1. ItemProcedures, rankingsYes (indent)No
Plain Bulletedβ€’ ItemEmails, notesNoNo
Plain Numbered1. ItemTask listsNoNo
Comma-SeparatedA, B, CInline referencesNoNo
JSON Array["A","B"]API payloads, configsYesYes
Line-per-ItemItem
Item
Seed files, importsNoPartially
Custom Prefix→ ItemCustom docsNoNo
SQL Values('A'),('B')Database insertsNoYes
XML List<item>A</item>Config files, SOAPYesYes
CSV DelimiterMeaningNotes
, (Comma)Field separatorMost common. RFC 4180 standard.
; (Semicolon)Field separatorCommon in European locales where comma is decimal separator.
\t (Tab)Field separatorTSV format. Avoids quoting issues.
| (Pipe)Field separatorUsed in legacy systems and log files.
""Escaped quoteA literal double quote inside a quoted field per RFC 4180.
BOM (\uFEFF)Byte Order MarkInvisible prefix in UTF-8 files from Excel. Must be stripped.

Frequently Asked Questions

Per RFC 4180, any field containing the delimiter character, a newline, or a double quote must be enclosed in double quotes. The parser enters a quoted-field state (S1) upon encountering an opening quote and only exits when it finds a closing quote not followed by another quote. A sequence "" inside a quoted field is interpreted as a literal double-quote character. This means a field like "New York, NY" is correctly parsed as a single value: New York, NY.
The tool determines column count from the first row (header or data). Rows with fewer columns than expected are padded with empty strings. Rows with more columns than expected retain all fields, but only the selected column index is extracted. If the selected column index exceeds a short row's field count, that row produces an empty value, which is either included as blank or skipped depending on the "Skip empty items" setting.
Yes. The tool supports four input delimiters: comma (,), semicolon (;), tab (\t), and pipe (|). European-locale spreadsheets (Excel on German/French systems) often export with semicolons because the comma serves as the decimal separator. Select the matching delimiter before parsing. The auto-detect feature examines the first 5 rows and selects the delimiter with the most consistent occurrence count.
Yes. Files exported from Excel on Windows often begin with a Byte Order Mark (\uFEFF), an invisible character at position 0. The parser strips this character before processing. If not removed, it would prepend to the first field of the first row, corrupting the header name and causing column selection failures.
The tool processes files up to approximately 50MB directly in the browser. Files between 5MB and 50MB are parsed using a Web Worker to avoid blocking the UI thread. Beyond 50MB, browser memory constraints may cause tab crashes. For such files, consider splitting them with a command-line tool like split before processing.
The JSON output uses JSON.stringify() on each extracted value, which correctly escapes double quotes (\"), backslashes (\\), newlines (\n), tabs (\t), and Unicode control characters. The resulting array is valid JSON that can be directly parsed by any compliant JSON parser.