Transform each row of a CSV into a formatted text block.
About CSV to Multi-line
A CSV row is hard to read when it has many columns, and sometimes a record needs to be presented as a block of labelled lines: a contact card, a product sheet, an address label or a plain-text summary. This tool turns each row into a multi-line block, either with the default "column: value" layout or with a custom template that uses {{column}} placeholders.
Paste the CSV, optionally write a template, click Convert and copy or download the text. The conversion runs in your browser, so contact lists are never uploaded.
How to use CSV to Multi-line step by step
Paste the comma-separated CSV with a header line into the CSV box.
Optionally write a template in the template box using {{column}} placeholders and {{index}} for the row number. Leave it empty to get one "column: value" line per field.
Click "Convert". The result shows one block per row separated by a blank line.
Use "Copy" or "Download" (multiline-result.txt) to take the text.
name: Ana
phone: 600111222
city: Madrid
name: Luis
phone: 600333444
city: Sevilla
Why use our CSV to Multi-line?
100% free and online: no payments, no software or extensions to install.
Privacy-first: processing happens in your browser, your data never leaves your device.
No sign-up: paste your data and get the result in one click.
Fast and reliable: handle small or large files in seconds, ready for Excel and other tools.
Common use cases
Turn an exported contact list into readable cards to paste into notes or a wiki.
Create shipping labels or address blocks from an orders CSV.
Generate a numbered list of records with {{index}} for a report or a changelog.
Prepare text snippets for a support macro or a chatbot from a knowledge table.
Limits and tips
{{index}} is replaced by the row number starting at 1, which is handy for numbered lists.
The parser splits on commas without quote handling; values containing commas will spill into the next field.
Placeholders are case-sensitive and must match the header names exactly.
Blocks are separated by exactly one blank line; trailing whitespace is trimmed from the final result.
Frequently asked questions
What is the default output format?
Without a template, each row becomes a block with one line per column in the form column: value, in the order of the CSV header. Blocks are separated by an empty line, which makes the text easy to read and to split again.
How do I write a custom template?
Type any text and insert {{column_name}} where a value should go, for example Name: {{name}} ({{city}}). You can also use {{index}} for the row number. Line breaks in the template are preserved in each block.
What is the difference between this tool and Generate from Template?
Both replace placeholders per row. This tool provides a ready default layout (column: value) and the {{index}} counter, aimed at making records readable. Generate from Template requires a template and is aimed at producing code, emails or commands.
Can I convert back from multi-line to CSV?
Not with this tool. If you keep the default column: value format, a small script can rebuild the CSV by reading each block; otherwise keep the original CSV file.
Is the data uploaded?
No. The text is generated in your browser and stays on the page until you copy or download it.
Related tools
Other free utilities you may find useful
Generate from Template — Generate bulk text using a CSV as a data source for a template.
CSV to Excel — Convert a CSV file into a real Excel workbook (.xlsx) with separated columns and leading zeros preserved.
CSV to Delimited — Change the delimiter of your CSV (commas, semicolons, tabs).