Skip to content
Live100% client-sideExcel → YAML

Excel to YAML Converter — Online & Private

Convert Excel rows to a YAML list of mappings instantly — block style, correct scalar quoting, empty cells distinguishable from nulls. Zero upload, 100% client-side.

  • Instant pipeline

    Paste, drop, or upload — conversion updates automatically.

  • Typed output

    Columns are inferred as INTEGER, NUMERIC, BOOLEAN, or VARCHAR.

  • 100% local

    Files never leave your browser, even at the 15MB cap.

Source

Input

Excel file

Parsed columns and row counts appear here after conversion.

Output

YAML

Generated YAML appears here after conversion.

100% Client-Side Execution: Your files, database rows, and customer data are processed entirely in local browser memory. Zero bytes are uploaded to any server or external API.

Technical reference

How Excel to YAML conversion works

Excel to YAML Converter runs Excel workbooks through a deterministic, fully client-side pipeline and produces YAML output in a single pass — no round-trips, no queues, no waiting on someone else's server. Drop a .xlsx or .xls workbook onto the input pane — the first worksheet is picked up automatically. Press Run Conversion (or just pause typing — the studio parses as you go), and the generated output appears on the right with line numbers, syntax highlighting, and one-click copy or download.

Workbook parsing with native type preservation

The workbook is decoded entirely in your browser: the first worksheet is selected, its first row is treated as the header row, and every remaining row becomes a record. Both modern .xlsx files and the legacy .xls format are accepted, up to the 15MB client-side cap.

Unlike CSV, spreadsheet cells carry real types — and that flows through the whole pipeline. Numeric amounts and true/false booleans survive into conversion natively, so SQL output gets genuine INTEGER and BOOLEAN columns instead of quoted strings, and JSON output gets numbers instead of text. Blank rows are skipped automatically, and anything over 1MB is parsed inside a background Web Worker so the tab stays fully interactive while large books decode.

Excel to YAML: config data without the YAML hand-editing

YAML files are how teams encode configuration; spreadsheets are how stakeholders actually edit data. This converter closes that gap: each row becomes a block-style list item with headers as keys, ready for Ansible inventories, docker-compose service fragments, or CI matrices — the structure config tooling consumes, not flow-style JSON that linters reject. The header row is the contract: rename a column in the sheet and the generated key changes with it, visibly in the diff.

Scalar quoting is where YAML generation silently corrupts data, and the rules here are explicit: booleans-in-disguise (yes, no, on, off), null-like values, numbers, and indicator-bearing strings are double-quoted; everything else stays bare. Excel-specific traps get the same treatment — date-formatted cells convert as their serial numbers unless the column is Text-formatted first, and numeric IDs beyond 15 digits were already rounded inside Excel's doubles, so ID columns belong formatted as Text before they ever reach a converter.

Block-style YAML with honest scalar quoting

The output is a block sequence of mappings — the YAML shape configuration files, docker-compose services, and Ansible inventories actually use, not flow-style JSON-in-YAML. Each row becomes a list item with one key per line, indented consistently, so the file diffs cleanly in code review and survives YAML linters that reject flow collections.

Scalar quoting is where YAML converters usually go wrong, and this one is deliberate: strings that would parse as something else — true/false, yes/no, on/off, null, numbers, or values containing colons and hashes — are emitted double-quoted, while safe strings stay bare and readable. Empty cells become "" rather than a bare nothing, because bare emptiness in YAML is null, not an empty string — the distinction that breaks naive converters' round-trips.

Private by architecture: your data never leaves the browser

Every stage of this conversion — parsing, type inference, and output generation — executes locally inside your browser's JavaScript engine. The input is never transmitted, logged, or stored: there is no upload endpoint, no queue, no telemetry, and no account to create. Files larger than 1MB are handed to a background Web Worker so the interface keeps animating at 60fps even on hundred-thousand-row imports, and the page keeps working offline once loaded because it is a fully static export.

That architecture makes the tool safe for the exports you would never paste into a random website: customer PII, financial line items, internal Salesforce extracts, and unreleased product data. Paste it, convert it, copy or download the result — and the bytes never moved from your machine.

Limits and practical tips

Inputs are capped at 15MB per file or paste — hundreds of thousands of rows in practice — purely as a browser-safety guard rather than a server policy, since there is no server involved at all. Processing is single-pass and deterministic: the same input with the same options always produces byte-identical output, which makes the generator safe to keep in CI pipelines and documentation. Paste the output into a YAML linter when targeting strict consumers — the quoting rules here favor correctness over minimalism.

Frequently asked questions

How do I convert Excel to YAML?

Drop your .xlsx or .xls workbook onto the input pane and press Run Conversion. Each row becomes a YAML list item — headers become keys, cells become scalars — in block style, the structure Ansible inventories, docker-compose fragments, and CI matrices expect.

When does the converter quote values?

Whenever quoting is the only correct choice: values that would otherwise parse as booleans, null, or numbers (true/false, yes/no, on/off, null, 42), and strings containing YAML indicators like colons or hashes. Safe strings stay bare and readable. The distinction matters — an unquoted 'on' becomes true the moment YAML loads it.

How are empty cells represented?

As quoted empty strings (""), because a bare empty value in YAML means null, not an empty string. Preserving that distinction is what makes the output round-trip: your blank spreadsheet cell becomes empty text, not a null that changes the shape of your data downstream.

What about Excel dates and long numeric IDs?

Excel stores dates as serial numbers and the converter passes cell values through faithfully — a date column arrives as its serial unless the column is formatted as Text first. Long numeric identifiers hit Excel's 15-significant-digit double precision limit before conversion ever runs; format ID columns as Text in the workbook and every digit survives as a string.

Is my workbook uploaded anywhere?

No. Parsing and YAML generation run entirely in your browser — the workbook bytes never leave your machine, nothing is logged, and there is no account. That makes the tool safe for exactly the spreadsheets you would never paste into a random website.

Can I key the YAML by a column value instead of getting a list?

The converter emits the canonical list-of-mappings shape that Ansible, docker-compose, and CI tooling expect. Keying by a column is a deliberate consumer-side reshape — a two-line jq or Python transform from this exact output — and keeping the generator canonical means the same spreadsheet converts identically everywhere it is used, rather than into per-integration shapes.

How do booleans in my sheet convert?

Genuine Excel boolean cells (TRUE/FALSE) become native YAML true/false scalars. Text cells reading 'yes', 'no', 'on', or 'off' are quoted — because YAML 1.2 would otherwise load them as booleans and silently change your data's type. That quoting rule is the difference between a config file that means what the spreadsheet said and one that means something adjacent to it.