CSV to INI Converter

Paste or drop a CSV file to turn each row into an INI [Section] with its other columns as key = value lines. Pick any column (like Name or Id) as the section-name source, or let rows become [Row1], [Row2]... automatically. Going the other way, paste an INI file to flatten every section into one CSV row, with the union of keys as columns; key/value pairs written before any section header land in a synthetic (root) pseudo-row. Comment lines (; or #), quoted values containing '=', and duplicate keys within a section (last value wins) are all handled. Everything runs on your device, and nothing is uploaded.

PrivateFreeWorks offline

Reviewed by Vincenzo Manto, Founder & Lead Developer · Last updated September 27, 2026

How it works

  1. 1

    Paste your CSV text or an INI file's contents, or drop a file into the input box.

  2. 2

    Pick the delimiter and, for CSV → INI, optionally the column to use as each section's name; for INI → CSV, the column name to store section names under.

  3. 3

    The converted output updates instantly on the right.

  4. 4

    Copy it or download it as a .ini or .csv file.

Why convert between CSV and INI?

INI files are still the configuration format of choice for countless desktop apps, games, and legacy Windows tools, while CSV is the easiest way to bulk-edit that same data in a spreadsheet. This tool bridges the two: turn a spreadsheet of settings into ready-to-use INI sections, or pull an INI config apart into rows you can filter, sort, and edit in bulk.

A small, careful hand-rolled parser

Both the CSV and INI sides are implemented as compact, dependency-free parsers rather than pulling in a library. The INI parser specifically tracks quote state character-by-character so an '=' inside a quoted value never gets mistaken for the key/value separator, and it documents exactly how it resolves the two edge cases every INI implementation has to make a call on: duplicate keys within a section, and key/value pairs that appear before any section header.

Frequently asked questions

How does CSV → INI decide section names?

By default every row becomes [Row1], [Row2], and so on. If you set a section-name column (e.g. "Name" or "Id"), that column's value becomes the section header instead, and it is excluded from that section's key = value lines.

Where do INI key/value pairs without a section header go?

Any "key = value" line that appears before the first [Section] header is collected into a synthetic "(root)" pseudo-row when converting INI → CSV, so no data is silently dropped.

What happens with duplicate keys in the same INI section?

The last value wins. If a section defines the same key twice, the second occurrence overwrites the first, matching how most INI parsers behave.

Are quoted values with '=' or special characters supported?

Yes. Values containing '=', ';', '#', leading/trailing whitespace, or newlines are automatically wrapped in double quotes with backslash-escaping when generating INI, and correctly unescaped when reading it back, so a quoted value like "a=b" round-trips intact.

Are comment lines supported?

Yes. Lines starting with ';' or '#' are treated as comments and skipped entirely when parsing INI → CSV.

Does this tool upload my file anywhere?

No. Everything is parsed and converted in your browser with plain JavaScript; there's no server involved, and nothing leaves your device.

Related tools