CSV To TOML

Login

Email
Password

Don't have an account yet?

Go to Sign up

{{ workbook ? 'Online Table Editor' : 'Input Data' }}
Change File Enter Data
Row Col Row Col
Transpose Clear Delete Empty Deduplicate
ABC abc Abc
Replace
First Row as Header
{{ displayRows.length }} rows x {{ displayHeaders.length }} columns{{ firstRowAsHeader ? ' (1 header)' : '' }} {{ selectedRows.length > 0 ? selectedRows.length + ' selected' : '' }}
Output Data
{{ copied ? 'Copied!' : 'Copy to Clipboard' }} Download File
Properties
Convert CSV to TOML online — paste, edit, and download TOML.

Convert Restart
Insert Row Below
Insert Row Above
Insert Column Right
Insert Column Left
Delete Row {{ contextMenu.row + 1 }}
Delete Column {{ contextMenu.col + 1 }}
Clear Cell
Clear Row
Case sensitive Use regex Cancel Replace All

CSV to TOML — Free Online Converter with Table Editor

What Is TOML?

TOML (Tom's Obvious Minimal Language) is a configuration file format created by Tom Preston-Werner in 2013. It is designed to be unambiguous, human-readable, and easy to parse. TOML files use the .toml extension.

[database]

host = "localhost"

port = 5432

name = "myapp"

enabled = true


[server]

host = "0.0.0.0"

port = 8080

workers = 4


TOML Syntax

ElementSyntaxExample
Key-value pairkey = valuehost = "localhost"
String"double quotes"name = "Alice"
IntegerBare numberport = 8080
FloatDecimal numberpi = 3.14
Booleantrue / falsedebug = false
Array[val1, val2]tags = ["web", "api"]
Table (section)[section][database]
Nested table[section.subsection][server.ssl]
Comment# comment# production config
Multiline string"""..."""description = """..."""

Where TOML Is Used

Tool / PlatformTOML FilePurpose
RustCargo.tomlPackage manifest (dependencies, metadata)
Pythonpyproject.tomlBuild system, project config (PEP 518/621)
Python (uv)uv.tomluv package manager configuration
Hugoconfig.tomlStatic site generator configuration
Terraform.terraformrcCLI configuration
Netlifynetlify.tomlDeploy configuration
InfluxDBinfluxdb.tomlDatabase configuration
Cirrus CI.cirrus.yml (also TOML)CI pipeline configuration
Taplo.taplo.tomlTOML toolkit configuration
Biomebiome.tomlJavaScript/TypeScript linter config
Ruffruff.tomlPython linter configuration
Cargo (Rust).cargo/config.tomlCargo build configuration

TOML vs. YAML vs. JSON vs. INI

FeatureTOMLYAMLJSONINI
Sections[section]Map keysNested objects[section]
TypesString, int, float, bool, array, datetimeString, int, float, bool, array, nullString, int, float, bool, array, nullString only
Comments# comment# commentNot supported; or #
Nesting[parent.child]Indentation{} nestingNot supported
Arrays[1, 2, 3]- item[1, 2, 3]Not supported
Multiline strings"""..."""| block\n escapeNot supported
AmbiguityMinimalSignificant whitespace issuesNoneMinimal
Specv1.0 (official)1.2RFC 8259No formal spec
Best forApplication config, project manifestsComplex config, CI/CDAPIs, data interchangeSimple config

Why Convert CSV to TOML?

Use CaseDescription
Rust packagesConvert dependency data to Cargo.toml format
Python projectsGenerate pyproject.toml entries from CSV package lists
Hugo sitesConvert content front matter data to TOML
Configuration migrationMove CSV-based config data to TOML format
Ruff / Biome configGenerate linter configuration from CSV settings
DocumentationPresent tabular data in TOML format for technical docs
Data entryUse the table editor to clean CSV before converting to TOML

TOML Type Mapping from CSV

CSV ValueTOML TypeExample
"hello" or helloStringname = "hello"
42Integerport = 42
3.14Floatpi = 3.14
true / falseBooleandebug = false
null or emptyString (empty)value = ""
2024-01-15String (or datetime)date = "2024-01-15"

Core Features

1. Online Table Editor

After loading CSV data, an interactive spreadsheet grid lets you edit before converting:

OperationDescription
TransposeSwap rows and columns
ClearRemove all data
Delete EmptyRemove empty rows/columns
DeduplicateRemove duplicate rows
ReplaceFind and replace (with regex support)
Case transformUPPERCASE, lowercase, Title Case
Insert/deleteRight-click for row/column operations
First Row as HeaderToggle header treatment

2. Privacy by Design

All processing runs entirely in your browser. No data is uploaded to any server.

How to Use This Tool — Step-by-Step

Step 1: Load CSV Data

Choose one of two input methods:

  • Upload a file: Click "Choose File" and select a .csv file.

  • Paste data: Click "Enter Data" to switch to the code editor. Paste your CSV.

Step 2: Edit in Table Editor (Optional)

Use the toolbar to clean your data:

  • Remove duplicates (Deduplicate)

  • Remove empty rows/columns (Delete Empty)

  • Find and replace values (Replace)

  • Transform text case

  • Transpose rows and columns

Step 3: Convert

Click Convert. The TOML output appears in the "Output Data" panel.

Step 4: Copy or Download

  • Click Copy to Clipboard to paste into your .toml file.

  • Premium users can click Download File to save.

Complete Example

Example — Database Configuration

Input CSV:

key,value

host,localhost

port,5432

name,myapp_production

enabled,true

pool_size,10

timeout,30

Output:

host = "localhost"

port = 5432

name = "myapp_production"

enabled = true

pool_size = 10

timeout = 30

Example — Rust Dependencies (Cargo.toml)

Input CSV:

name,version

serde,1.0

tokio,1.35

reqwest,0.11

tracing,0.1

clap,4.4

Output:

name = "serde"

version = "1.0"

Note: For Cargo.toml dependencies, you would reorganize the output into TOML table format:

[dependencies]

serde = "1.0"

tokio = "1.35"

reqwest = "0.11"

tracing = "0.1"

clap = "4.4"

Example — Application Settings

Input CSV:

section,key,value

database,host,localhost

database,port,5432

database,name,myapp

server,host,0.0.0.0

server,port,8080

server,workers,4

logging,level,info

logging,file,/var/log/app.log

After transposing and editing, output:

[database]

host = "localhost"

port = 5432

name = "myapp"


[server]

host = "0.0.0.0"

port = 8080

workers = 4


[logging]

level = "info"

file = "/var/log/app.log"


Example — Environment Variables

Input CSV:

variable,value

DATABASE_URL,postgres://localhost/myapp

REDIS_URL,redis://localhost:6379

SECRET_KEY,abc123xyz

DEBUG,false

MAX_CONNECTIONS,100

Output:

DATABASE_URL = "postgres://localhost/myapp"

REDIS_URL = "redis://localhost:6379"

SECRET_KEY = "abc123xyz"

DEBUG = false

MAX_CONNECTIONS = 100

TOML Best Practices

PracticeDetails
Use sections for grouping[database], [server], [logging]
Quote all strings"value" — required by TOML spec
Use integers for portsport = 8080 not port = "8080"
Use booleans for flagsdebug = true not debug = "true"
Add comments liberally# production database settings
Keep sections flatAvoid deeply nested [a.b.c.d.e]
Use arrays for liststags = ["web", "api", "mobile"]
Validate with taploUse Taplo TOML linter/validator

Frequently Asked Questions (FAQ)

  • Does the tool upload my data to the server?

    No. All conversion happens locally in your browser using JavaScript. Your data never leaves your device.

  • What is TOML?

    TOML (Tom's Obvious Minimal Language) is a configuration file format designed to be human-readable and unambiguous. It is used by Rust (Cargo.toml), Python (pyproject.toml), Hugo, and many other tools.

  • What is the difference between TOML and YAML?

    TOML uses explicit section headers ([section]) and requires quoted strings. YAML uses indentation for structure and supports more complex features. TOML is less ambiguous; YAML is more expressive. Both are used for configuration.

  • What is the difference between TOML and INI?

    TOML supports typed values (integers, floats, booleans, arrays, datetime), nested tables, and has a formal specification. INI only supports string values with no formal spec. TOML is a strict superset of INI's capabilities.

  • Can I use the output in Cargo.toml?

    The tool generates flat TOML key-value pairs. For Cargo.toml, you may need to reorganize the output into the expected [package] and [dependencies] table structure.

  • Can I edit the data before converting?

    Yes. The built-in table editor lets you modify cells, transpose, deduplicate, find/replace, change case, and insert/delete rows and columns before generating TOML.

  • What CSV formats are supported?

    Standard CSV with comma delimiters. The first row can be used as column headers (enable "First Row as Header").

  • Is there a file size limit?

    The tool processes data entirely in your browser. Files up to 10 MB typically convert without issues on modern hardware.

  • Can I use this on mobile?

    Yes. The tool is responsive, though the table editor is best experienced on desktop.

Featured Tools

Featured tools that you might find useful.

Popular Tools

List of popular tools that users love and frequently use.

New Tools

The latest tools added to our collection, designed for you.

Topics

The tools grouped by topics to quickly find what you need.
Free online Excel to JSON converter. Transform XLSX, XLS, XLSM files into JSON arrays, objects, or keyed formats instantly in your browser — no upload, 100% private.

Excel To JSON

Free online Excel to JSON converter. Transform XLSX, XLS, XLSM files into JSON arrays, objects, or keyed formats instantly in your browser — no upload, 100% private.
Free Excel to CSV converter. Convert XLSX, XLS, XLSM to CSV instantly in your browser. No upload, 100% private. Edit, transpose, deduplicate before exporting.

Excel To CSV

Free Excel to CSV converter. Convert XLSX, XLS, XLSM to CSV instantly in your browser. No upload, 100% private. Edit, transpose, deduplicate before exporting.
Free online Excel to SQL converter. Generate CREATE TABLE and INSERT statements from spreadsheets for MySQL, PostgreSQL, SQLite, and SQL Server. Supports batch insert, primary keys, and type inference.

Excel To SQL

Free online Excel to SQL converter. Generate CREATE TABLE and INSERT statements from spreadsheets for MySQL, PostgreSQL, SQLite, and SQL Server. Supports batch insert, primary keys, and type inference.
Free online Excel to ASCII table converter with 10 border styles (MySQL, Unicode, reStructuredText, and more). Add code comment wrappers in 8 languages. Supports text alignment. Client-side processing.

Excel To ASCII Table

Free online Excel to ASCII table converter with 10 border styles (MySQL, Unicode, reStructuredText, and more). Add code comment wrappers in 8 languages. Supports text alignment. Client-side processing.