Go to Sign up
Note: Your files never leave your device. We don't upload, transfer, or store your data.
|
|
|
|
|---|---|---|
|
|
|
INI is a plain-text configuration file format originally introduced with Windows 3.x and now used across operating systems, programming languages, and applications. An INI file organizes settings into sections ([section]) containing key-value pairs (key = value), with optional comments (; or #).
The CSV to INI Converter on A.Tools transforms any CSV or TSV spreadsheet into a properly structured INI configuration file. Choose which column defines sections, pick your separator and comment style, and handle empty values — all in the browser, with zero data leaving your device.
The Section Column dropdown lets you choose which CSV column becomes the [section] header. Rows sharing the same value in that column are automatically grouped under one section. All remaining columns become key-value pairs within that section.
Example CSV:
section,key,value
database,host,localhost
database,port,3306
server,name,production
server,ip,192.168.1.1
Output (Section Column = column 1 "section"):
[database]
host = localhost
port = 3306
[server]
name = production
ip = 192.168.1.1
Four separator options:
| Separator | Example | Common Usage |
|---|---|---|
= | key=value | Windows INI files (compact) |
= | key = value | Windows INI files (readable) |
: | key:value | Unix-style configs, Xorg |
: | key : value | Unix-style configs (readable) |
Choose between two standard INI comment characters:
; — Semicolon (Windows convention, most common)
# — Hash (Unix convention, used in many cross-platform apps)
| Option | Behavior |
|---|---|
| keep | Output key = (empty value preserved) |
| remove | Skip the key entirely when the value is empty |
When enabled, rows where all cells (except the section column) are empty are excluded from the output. Prevents blank key-value pairs in your INI file.
When enabled, sections that contain no key-value pairs after processing are omitted from the output. Keeps the INI file clean.
Toggle UTF-8 BOM to add a Byte Order Mark (EF BB BF) at the start of the file. This ensures Windows applications (Notepad, legacy parsers) correctly detect UTF-8 encoding when your INI file contains non-ASCII characters.
Edit your data in-browser before converting:
Undo / Redo — Full edit history.
Add / Delete Rows & Columns — Expand or trim the table.
Transpose — Swap rows and columns.
Delete Empty — Remove empty rows and columns.
Deduplicate — Remove duplicate rows.
ABC / abc / Abc — Batch case conversion.
Find & Replace — With regex support.
First Row as Header — Toggle header treatment.
All processing runs client-side via the browser File API. Files are never uploaded, transmitted, or stored. Since INI files often contain database credentials, API keys, and other sensitive configuration data, this tool ensures your data stays on your machine.
Upload a .csv or .tsv file by dragging it onto the upload area, or click to browse. Alternatively, click Enter Data to type or paste data directly.
Use the toolbar to refine your data:
Add, insert, or delete rows and columns.
Transpose the table.
Remove empty rows/columns or duplicate rows.
Change text case.
Find and replace values (supports regex).
Toggle First Row as Header to define column names.
In the Properties panel:
| Option | What to Set |
|---|---|
| Section Column | The column whose values become [section] headers |
| Key-Value Separator | = or : (with or without spaces) |
| Comment Style | ; or # |
| Skip Empty Rows | On to exclude rows with no data |
| Skip Empty Sections | On to exclude empty sections |
| Empty Value Handling | keep to preserve empty values, remove to skip them |
| UTF-8 BOM | On if the target app requires BOM for non-ASCII |
Click Convert. The INI output appears in the Output Data panel.
Click Copy to Clipboard to paste into your editor, or Download File (Premium) to save as .ini.
Input CSV:
section,key,value
app,name,MyApp
app,version,2.1.0
app,debug,false
database,host,db.example.com
database,port,5432
database,name,production_db
logging,level,INFO
logging,path,/var/log/myapp.log
Settings: Section Column = "section", Separator = =, Comment = ;
Output:
[app]
name = MyApp
version = 2.1.0
debug = false
[database]
host = db.example.com
port = 5432
name = production_db
[logging]
level = INFO
path = /var/log/myapp.log
Input CSV:
section,key,value
graphics,resolution,1920x1080
graphics,quality,high
graphics,vsync,true
audio,master,80
audio,music,60
audio,sfx,100
controls,sensitivity,2.5
controls,invert_y,false
Settings: Section Column = "section", Separator = =
Output:
[graphics]
resolution=1920x1080
quality=high
vsync=true
[audio]
master=80
music=60
sfx=100
[controls]
sensitivity=2.5
invert_y=false
Input CSV:
section,key,value
production,API_KEY,sk-abc123
production,API_SECRET,
production,BASE_URL,https://api.example.com
staging,API_KEY,sk-test-xyz
staging,API_SECRET,
staging,BASE_URL,https://staging.example.com
Settings: Section Column = "section", Separator = =, Empty Value = remove
Output:
[production]
API_KEY = sk-abc123
BASE_URL = https://api.example.com
[staging]
API_KEY = sk-test-xyz
BASE_URL = https://staging.example.com
The empty API_SECRET rows are omitted from the output.
An INI file has three element types:
Sections — [section_name] on its own line. Groups related settings.
Keys and Values — key = value or key: value within a section.
Comments — Lines starting with ; or #. Ignored by parsers.
| Aspect | INI | JSON | YAML | TOML |
|---|---|---|---|---|
| Readability | Very high | Medium | High | High |
| Sections | [section] | Nested objects | Indentation | [section] |
| Data types | Strings only | All types | All types | All types |
| Comments | ; or # | No | # | # |
| Nesting | Not supported | Unlimited | Unlimited | Supported |
| Use case | Simple configs | APIs, data exchange | Complex configs | Modern configs (Rust) |
INI remains the preferred format for flat, section-based configuration where simplicity and human-readability are priorities.
Application deployment — Convert spreadsheet-managed settings into .ini files for deployment.
Game modding — Transform tabular game data into INI config files.
Legacy system migration — Move settings from spreadsheets into INI-based systems.
Batch configuration — Generate multiple INI files from a central CSV data source.
Testing — Create test configuration files from structured test data.
No. All file processing happens entirely in your browser using JavaScript. Your CSV data is never uploaded, transferred, or stored on any server. This is especially important for INI files that may contain passwords or API keys.
INI is a plain-text configuration format with sections ([section]) and key-value pairs (key = value). It was originally used by Windows 3.x and is now supported by parsers in Python (configparser), PHP (parse_ini_file), Java, Node.js, and many other languages.
Select a column from the dropdown. Each unique value in that column becomes an [section] header. Rows with the same section value are grouped together, and the remaining columns become key-value pairs within that section.
= and : separators? The = separator is the standard for Windows INI files and is recognized by virtually all parsers. The : separator is used in some Unix-style configurations. Most parsers accept both, but = is the safer default.
The Byte Order Mark (BOM) is a 3-byte sequence (EF BB BF) prepended to a text file. It signals to text editors and parsers that the file uses UTF-8 encoding. Enable it if your INI file contains non-ASCII characters and will be read by Windows Notepad or legacy applications.
The tool accepts .csv (comma-separated values) and .tsv (tab-separated values) files. You can also enter data manually through the built-in table editor.
If your CSV has no section column (all rows have the same or empty section value), the tool outputs a flat list of key-value pairs. Some parsers accept sectionless INI files; others require at least one section header.
Processing is entirely client-side. The practical limit depends on your browser and device memory. Files up to several megabytes typically work without issue.