Go to Sign up
Note: Your files never leave your device. We don't upload, transfer, or store your data.
|
|
|
|
|---|---|---|
|
|
|
TOML (Tom's Obvious Minimal Language) is a configuration file format designed to be unambiguous and easy to read. It uses a simple key = value syntax with sections (tables) defined by [headers]:
[server]
host = "localhost"
port = 8080
debug = true
[database]
url = "postgres://localhost/mydb"
pool_size = 10
TOML maps cleanly to a hash table (dictionary), making it trivial to parse in any programming language. It is a formal specification — not a de facto standard — which means every TOML parser produces the same output.
| Project | File | Purpose |
|---|---|---|
| Rust / Cargo | Cargo.toml | Package manifest (dependencies, metadata, build config) |
| Python | pyproject.toml | Build system config, project metadata, tool settings |
| Hugo | config.toml | Static site generator configuration |
| InfluxDB | influxdb.toml | Database server configuration |
| Terraform | .toml files | Provider and backend configuration |
| Noir | Noir.toml | Project configuration |
TOML has largely replaced INI and custom formats in the Rust and Python ecosystems.
Converting Excel data to TOML is useful when:
Generating Cargo.toml dependency lists from a spreadsheet of crates and versions
Creating pyproject.toml configurations from parameter tables managed by non-developers
Building Hugo site configurations from content strategy spreadsheets
Managing environment-specific configs in Excel for porting to TOML files
Batch-generating TOML files for multiple services or environments
name = "Alice"
age = 30
active = true
score = 95.5
TOML supports strings, integers, floats, booleans, and datetimes as scalar values.
[database]
host = "localhost"
port = 5432
name = "myapp"
Each [header] defines a table. All key-value pairs below it belong to that table.
[server]
host = "0.0.0.0"
[server.ssl]
enabled = true
cert = "/path/to/cert.pem"
Use [[headers]] to create an array of tables:
[[products]]
name = "Hammer"
sku = 738594937
[[products]]
name = "Nail"
sku = 284758393
This is how Excel rows map to TOML — each row becomes an entry in an array of tables.
point = { x = 1, y = 2 }tags = ["rust", "config", "parser"]Given this Excel data:
| name | version | description |
|---|---|---|
| serde | 1.0 | Serialization framework |
| tokio | 1.35 | Async runtime |
The converter produces:
[[row]]
name = "serde"
version = "1.0"
description = "Serialization framework"
[[row]]
name = "tokio"
version = "1.35"
description = "Async runtime"
Each Excel row becomes an entry in an array of tables ([[row]]), with column headers as TOML keys.
| Format | Extension | Notes |
|---|---|---|
| Excel Workbook | .xlsx | Default format since Excel 2007 |
| Legacy Excel | .xls | Excel 97–2003 format |
| Macro-Enabled | .xlsm | Excel with VBA macros (data only) |
Multi-sheet workbooks are supported — a sheet selector appears when multiple worksheets are detected.
After uploading your Excel file, the built-in editor lets you:
Add, delete, and reorder rows and columns
Transpose rows to columns
Remove empty rows and duplicate rows
Apply case transformations (UPPERCASE, lowercase, Capitalize)
Find and replace values (with regex support)
When the uploaded workbook contains multiple worksheets, a sheet selector appears in the toolbar. Select the sheet containing the data you want to convert.
All processing happens in your browser. Your Excel files are never uploaded to any server.
Drag and drop an .xlsx, .xls, or .xlsm file onto the upload area, or click to browse. If the workbook has multiple sheets, select the desired sheet from the dropdown.
Use the toolbar to modify your data before conversion. Insert or remove rows and columns, transpose the table, deduplicate rows, or apply bulk case changes.
Click Convert. The TOML output appears in the Output Data panel.
Click Copy to Clipboard to paste the TOML into your configuration file, or use Download File (Premium) to save the .toml file.
| Feature | TOML | YAML | JSON |
|---|---|---|---|
| Syntax | key = value | key: value | "key": "value" |
| Comments | # comment | # comment | Not supported |
| Ambiguity | None (formal spec) | Significant (whitespace, anchors) | None |
| Data types | Rich (datetime, etc.) | Rich | Basic |
| Arrays of tables | [[table]] | - key: val | [{...}] |
| Multi-document | Not supported | --- separator | Not supported |
| Primary use | Rust, Python config | DevOps, CI/CD | APIs, data exchange |
| Learning curve | Low | Medium | Low |
TOML is preferred over YAML in the Rust ecosystem because it has zero ambiguity — there is only one valid way to parse any given TOML file, unlike YAML where edge cases and gotchas are common.
Cargo.toml dependencies — Maintain a spreadsheet of Rust crates, versions, and features, then export as TOML
pyproject.toml — Generate Python project configuration from parameter tables
Hugo config — Convert site configuration data from Excel to config.toml
InfluxDB config — Generate database configuration files from operational spreadsheets
Environment configs — Manage dev/staging/prod configurations in Excel, export as per-environment TOML files
CI/CD parameters — Keep build configuration parameters in a shared spreadsheet, generate TOML for tools that require it
The converter accepts .xlsx (Excel Workbook), .xls (Excel 97–2003), and .xlsm (Macro-Enabled Workbook) files. Multi-sheet workbooks are supported with a sheet selector.
No. All conversion happens entirely in your browser using client-side JavaScript. Your files are never uploaded, transferred, or stored on any server.
TOML (Tom's Obvious Minimal Language) is a configuration file format that maps unambiguously to a hash table. It is used for Cargo.toml (Rust), pyproject.toml (Python), config.toml (Hugo), and other configuration files in the Rust and Python ecosystems.
Each Excel row becomes an entry in a TOML array of tables ([[row]]). Column headers become TOML keys, and cell values become the corresponding values. The output is valid TOML that can be used directly in any TOML parser.
TOML uses key = value syntax with formal unambiguous parsing rules. YAML uses key: value syntax with significant whitespace and has known parsing edge cases. TOML is preferred in Rust and Python ecosystems; YAML is more common in DevOps and CI/CD tools (Docker Compose, Kubernetes, GitHub Actions).
Yes. When you upload a multi-sheet workbook, a sheet selector appears in the toolbar. Select the sheet you want to convert to TOML.
The converter outputs string values by default. TOML's native types — strings, integers, floats, booleans, arrays, and datetimes — are all supported by the format. Numeric values that appear as numbers in Excel are output as unquoted values where appropriate.
Yes. After uploading your file, a full table editor opens where you can add or remove rows and columns, transpose the table, deduplicate rows, change text case, and find and replace values.