Turn a spreadsheet export into a clean YAML array of objects — RFC 4180 quoting, optional type inference, browser-only
- Runs locally
- Category Format Converter
- Best for Checking file type, size, metadata, and obvious mismatch signals before sharing.
What this tool does
Free CSV to YAML converter that turns a spreadsheet or comma-separated export into a clean YAML array of objects, keys taken from the header row. It parses CSV the way the RFC 4180 spec says it should: a quoted field can hold commas, line breaks and doubled escape quotes without breaking the table, so "Portland, OR" stays one value instead of two. Pick your delimiter (comma, semicolon, tab or a custom character), say whether the first row is a header, and flip type inference on to turn "123" into a number, "true" into a boolean and an empty cell into null — or leave it off so zip codes like "007" and version strings stay text. The YAML comes out of the same eemeli/yaml engine that powers our formatter, so anything that only looks like a number gets quoted and indentation is always valid YAML 1.2. One-click copy, download .yaml, and a share link that reopens your exact conversion. 100% client-side, nothing is uploaded.
Tool details
- Input
- Text + Numbers + Structured content
- The page exposes text boxes, numeric controls, file pickers, or structured inputs depending on the tool.
- Output
- Live result + Copy + Download
- The result area focuses on usable output, with copy, download, or preview actions when supported.
- Privacy
- Browser-side processing
- The main tool logic does not call an external API, so inputs normally stay in the current tab.
- Save / share
- Shareable URL state
- Key settings are encoded in the URL so another person can reopen the same setup.
- Performance budget
- Initial JS <= 12 KB
- No WASM budget is declared, keeping the tool quick to open on mobile.
- Best fit
- Format Converter · Developer
- Category and role tags drive related tools, internal links, and quick fit checks.
How to use
-
1. Input
Paste or drop your content into the tool panel.
-
2. Process
Click the button. All processing is local in your browser.
-
3. Copy / Download
Copy the result or download to disk in one click.
How CSV to YAML Converter fits into your work
Use it before upload, handoff, archive, support review, or any moment where a file needs one local check before it leaves your machine.
File jobs
- Checking file type, size, metadata, and obvious mismatch signals before sharing.
- Preparing mixed folders for upload, archive, intake, or review.
- Keeping sensitive files in the browser instead of sending them to an account-based service.
File checks
- Do not treat the extension alone as proof of the real file type.
- Review metadata before a file goes to customers, vendors, or a public page.
- Keep the original file until the copied, converted, or exported result is verified.
Good next steps
These links move the current task into a more complete workflow.
- 1 CSV to TSV Converter Convert CSV files to tab-separated values while preserving quoted commas, quotes, and multiline cells locally. Open
- 2 JSON to CSV Converter Turn a JSON array (or object) into clean CSV — flattens nested keys, escapes per RFC 4180, custom delimiter, UTF-8 BOM for Excel — browser-only Open
- 3 CSV ⇄ JSON Converter Convert CSV to JSON or JSON to CSV — handles quoted commas, newlines in cells, custom delimiter — browser-only Open
Real-world use cases
Seed a Rails or Laravel fixtures file from a spreadsheet
A product owner hands you a Google Sheet of demo users — name, email, role, active. Export it as CSV, paste it here, and you get a YAML array ready to drop into a fixtures or seed file. Type inference makes `active` a real boolean and `id` a real number, so the seed loads without a wall of string-to-int coercions in your migration.
Build a Kubernetes or Helm values list
You keep a list of services and their replica counts in a sheet so non-engineers can edit it. Export to CSV, convert, and paste the YAML straight into a Helm values block or a ConfigMap. The converter quotes anything ambiguous and keeps numbers numeric, so kubectl apply does not reject the manifest over a stringified replica count.
Turn a translation spreadsheet into a locale file
Translators work in a spreadsheet with a key column and one column per language. Export the slice you need, convert to YAML, and you have the start of a Rails / i18n locale file — Chinese, Japanese and accented text survive intact because everything is UTF-8 and the parser never touches the bytes inside a quoted field.
Feed a GitHub Actions matrix from a CSV
You want to run a job across a grid of os / node-version / arch combos that lives in a CSV someone maintains. Convert it to a YAML sequence and paste it under `matrix.include`. Each row becomes one matrix entry with the right types, so a numeric node version stays a number and the workflow parser is happy.
Common pitfalls
Leaving type inference ON for codes that must stay text. A zip code "007", an SKU or a phone number will become the number 7 or lose its leading zeros. Turn inference OFF for those columns, or split them out — the tool keeps them as quoted strings when inference is off.
Pasting a CSV whose fields contain commas without quotes. If your export wrote `Portland, OR` without surrounding quotes, the parser sees two columns and every later column shifts right. Re-export from the source with proper quoting, or wrap the offending fields in double quotes yourself.
Picking the wrong delimiter. European exports and many German tools use a semicolon, not a comma, because the comma is their decimal point. If every row collapses into one giant value, switch the delimiter to semicolon or tab — the column count next to the output tells you instantly whether you guessed right.
Privacy
Everything — the RFC 4180 parser, the type inference and the YAML stringifier — is plain JavaScript that runs in your browser tab, with no network calls and no logging of what you paste. The one caveat: the shareable link encodes your CSV in the URL query string, so a "share link" pasted into chat will record that data in the recipient server's access log. For a confidential table, use the copy or download button and send the file instead of the URL. Close the tab and nothing is left behind.
FAQ
Tool combos
Folks in your role tend to reach for these alongside this tool.
- 555 Timer Calculator Astable f = 1.44/((R1+2R2)C) + monostable t = 1.1RC — pick R1, R2, C in Ω/kΩ and µF/nF, read frequency, duty cycle and pulse width — browser-only
- Add Line Numbers Number every line of pasted text — set start, step and separator, zero-pad to align, skip blanks, or strip numbers back off — browser-only
- AES Text Encryptor Encrypt & decrypt text with a password — AES-256-GCM + PBKDF2 via WebCrypto — 100% in your browser, nothing uploaded
- Affine Cipher Encoder & Decoder Encrypt and decrypt the ax+b affine cipher with live modular-inverse check, browser-only