Excel to SQL Insert Generator
Convert Excel or CSV rows into ready-to-run SQL INSERT statements for free.
This tool runs entirely in your browser. Your files are never uploaded to a server.
Drop an Excel or CSV file here or click to upload
What this tool does
Reads the first sheet of an uploaded spreadsheet and turns every row into a SQL `INSERT` statement, using your column headers as the column names.
How to use it
Drop or select an .xlsx, .xls, or .csv file. Once parsed, edit the suggested table name if needed — the generated statements appear immediately below, ready to copy.
Worked example
Two rows with columns `name`, `quantity`, `in_stock` — ("O'Brien Supplies", 12, true) and ("Acme Co", 5, false) — become: `INSERT INTO \`inventory\` (\`name\`, \`quantity\`, \`in_stock\`) VALUES ('O''Brien Supplies', 12, 1);` and a second line for the Acme Co row with `0` for false — notice the apostrophe in "O'Brien" is escaped by doubling it.
How values are typed and escaped
Text values are wrapped in single quotes with any internal single quote doubled; numbers are written unquoted; booleans become the integers `1` or `0`; and empty, null, or undefined cells become the SQL keyword `NULL`. Column names are wrapped in backticks, MySQL/MariaDB style.
How the table name is chosen
The table name defaults to the uploaded file's name, stripped of its extension and with any character that isn't a letter, digit, or underscore replaced — you can edit it before copying the statements.
Limitations
Only the first sheet of the file is read; other sheets in a multi-sheet workbook are ignored. There's a 5,000-row cap per upload, and backtick-quoted identifiers are MySQL/MariaDB syntax — Postgres and other databases that expect double-quoted identifiers will need the backticks replaced before running the statements. No column types, constraints, or foreign keys are inferred — this only generates INSERTs, not table-creation DDL.
Privacy
The spreadsheet is parsed entirely in your browser — the file and the generated SQL never leave your device.
Frequently Asked Questions
- Is my spreadsheet uploaded to a server?
- No, the file is parsed entirely in your browser using the xlsx library, and neither the file nor the generated SQL ever leaves your device.
- Which file formats are supported?
- .xlsx, .xls and .csv are supported, and only the first sheet's data is read — other sheets in the same workbook are ignored.
- How are text values with an apostrophe handled?
- Any single quote inside a text value is doubled (turned into '') so the generated INSERT statement stays valid SQL, matching standard SQL string-escaping.
- Is there a row limit?
- Yes, files with more than 5,000 rows on the first sheet are rejected with a message asking you to split the file into smaller pieces.