Go to Sign up
Note: Your files never leave your device. We don't upload, transfer, or store your data.
|
|
|
|
|---|---|---|
|
|
|
| Syntax | Description |
|---|---|
{h1} {h2} | 1st, 2th... heading field |
{$1} {$2} | 1st, 2th... row field |
{F,} {F;} | Split row by delimiter |
{NR} | Row number from 1 |
{ENR} | End line number |
{x code} | Execute JS code |
{...\} | Literal braces |
CSV (Comma-Separated Values) is one of the most widely used formats for exchanging tabular data between applications. However, raw CSV is rarely the final format you need. The CSV to Custom Template Converter on A.Tools lets you transform any CSV or TSV file into precisely the text format your workflow demands — SQL statements, JSON arrays, XML documents, Markdown tables, configuration files, or any arbitrary template — using a simple placeholder syntax.
All processing runs locally in your browser. No data leaves your device.
One-click presets for common conversions:
SQL INSERT — Generate INSERT INTO ... VALUES (...) statements from your CSV.
JSON Array — Convert rows into a JSON array of objects.
XML — Wrap each row in XML tags using header names.
Markdown Table — Produce a ready-to-paste Markdown table.
Custom — Write your own template from scratch.
Before converting, edit your data directly in the browser:
Add, delete, and reorder rows and columns.
Transpose the entire table.
Remove empty rows/columns and deduplicate.
Change text to UPPERCASE, lowercase, or Capitalize.
Find & Replace across all cells.
| Syntax | Description |
|---|---|
{$1}, {$2}, {$3} ... | 1st, 2nd, 3rd column value in the current row |
{h1}, {h2}, {h3} ... | 1st, 2nd, 3rd header (column name) |
{NR} | Current row number (starting from 1) |
{ENR} | Last row number (total data rows) |
{F,} | Split the row by , delimiter |
{F;} | Split the row by ; delimiter |
{x code} | Execute inline JavaScript (e.g., {x $1.toUpperCase()}) |
{...\} | Output literal braces |
The tool processes everything client-side using JavaScript. Files are read with the browser's File API and never transmitted over the network. There is no server-side storage or logging of your data.
Upload a .csv or .tsv file by dragging it onto the upload area, or click the upload area to browse your files. Alternatively, click Enter Data to type or paste data directly into the built-in table editor.
Use the toolbar above the table to modify your data:
Undo / Redo — Revert or reapply changes.
Add Row / Add Column — Expand the table.
Delete Row / Delete Column — Select rows or columns with the checkboxes, then delete.
Transpose — Swap rows and columns.
Delete Empty — Remove rows and columns that contain no data.
Deduplicate — Remove duplicate rows.
ABC / abc / Abc — Change the case of all cell values.
Replace — Find and replace text across the entire table.
First Row as Header — Toggle whether the first row is treated as column headers.
In the Properties panel on the right:
Choose a built-in template from the dropdown (e.g., SQL INSERT, JSON Array), or leave it on "Custom" to write your own.
Row Template — Define the output pattern for each data row. Example for SQL: INSERT INTO my_table ({h1}, {h2}, {h3}) VALUES ('{$1}', '{$2}', '{$3}');
Header Template (optional) — Text that appears once before all rows. Example: [
Footer Template (optional) — Text that appears once after all rows. Example: ]
Click the Convert button. The output appears in the Output Data panel.
Click Copy to Clipboard to paste the result into your editor, or click Download File (Premium) to save it as a file.
Input CSV:
name,email,role
Alice,[email protected],Admin
Bob,[email protected],Editor
Row Template:
INSERT INTO users ({h1}, {h2}, {h3}) VALUES ('{$1}', '{$2}', '{$3}');Output:
INSERT INTO users (name, email, role) VALUES ('Alice', '[email protected]', 'Admin');
INSERT INTO users (name, email, role) VALUES ('Bob', '[email protected]', 'Editor');
Header Template: [
Row Template: {"{h1}": "{$1}", "{h2}": "{$2}", "{h3}": "{$3}"},
Footer Template: ]
Output:
[
{"name": "Alice", "email": "[email protected]", "role": "Admin"},
{"name": "Bob", "email": "[email protected]", "role": "Editor"},
]
No. All file processing happens entirely in your browser using JavaScript. Your CSV data is never uploaded, transferred, or stored on any server.
The tool accepts .csv (comma-separated) and .tsv (tab-separated) files. You can also enter data manually through the built-in table editor without uploading a file.
Placeholders in curly braces reference your data: {$1} is the first column's value, {h1} is the first column's header, {NR} is the row number, and {x code} runs custom JavaScript. See the Syntax Reference table above for the full list.
Yes. Select the "SQL INSERT" preset from the built-in template dropdown, or manually write a row template like:
INSERT INTO table_name ({h1}, {h2}) VALUES ('{$1}', '{$2}');Since processing is entirely client-side, the practical limit depends on your browser and device memory. Files up to several megabytes (tens of thousands of rows) typically work without issue.
Yes. The built-in Find & Replace tool supports regex mode. Enable it by checking the "Use regex" option in the Replace dialog.