Excel to JSON converter for config, seed data and APIs
Product lists, translations and settings often live in a spreadsheet that someone else edits, while your app needs JSON. Your todo.is agent reads the workbook, maps each sheet to the structure you describe, types every value and returns valid JSON you can drop into your project.
The prompt
- Convert the attached Excel workbook to JSON: [ATTACH THE .XLSX]. Use the sheet [SHEET] and treat row 1 as headers. Output [STRUCTURE]. Use [KEY STYLE] keys. Numbers as numbers, TRUE/FALSE as booleans, blank cells as null, dates as ISO strings (YYYY-MM-DD), and formula cells as their values. Skip rows where [SKIP RULE]. Validate the JSON, pretty-print it with 2 spaces and send me the .json file plus a list of any rows you skipped and why.
What to change
- [ATTACH THE .XLSX]: Attach an .xlsx, .xls or Google Sheets export.
- [SHEET]: E.g. "Products", "all sheets, one JSON key per sheet" or "the first sheet".
- [STRUCTURE]: E.g. "an array of objects", "an object keyed by SKU" or "nested by language then key, for i18n files".
- [KEY STYLE]: E.g. "camelCase", "snake_case" or "exactly as the headers".
- [SKIP RULE]: E.g. "Status is Draft", "the ID is empty" or "never".
Example result
- Excel to JSON: App_Strings.xlsx
- Sheet "Translations" · 412 rows · columns: key, en, fr, de · output: one file per language, nested by dotted key
- Files
- • en.json: 412 keys
- • fr.json: 408 keys (4 missing, see below)
- • de.json: 412 keys
- Example: fr.json
- {
- "checkout": {
- "title": "Paiement",
- "button": {
- "pay": "Payer {amount}",
- "back": "Retour au panier"
- }
- },
- "errors": {
- "card_declined": "Votre carte a été refusée."
- }
- }
- How rows became JSON
- • The key "checkout.button.pay" became nested objects checkout → button → pay
- • Placeholders like {amount} were kept exactly
- • Leading and trailing spaces were trimmed
- • Accents and special characters kept (UTF-8)
- Checks
- • All three files are valid JSON
- • No duplicate keys. One near-duplicate to review: "errors.cardDeclined" and "errors.card_declined"
- • Missing in French (left out of fr.json so your app falls back to English): settings.privacy.title, settings.privacy.body, onboarding.step4, emails.footer
- • 6 rows skipped because the key cell was empty (rows 87, 88, 140, 141, 300, 411)
- Next step
- Replace the files in your locales folder. Send the updated sheet any time and ask for the same conversion again.
How to do it with todo.is
- Copy the prompt and describe the JSON structure your code needs.
- Attach the workbook in the todo.is web or Android app, or send it to your agent on Slack.
- Your agent builds the JSON, validates it and lists skipped or missing values.
- Download the .json files. Ask for a TypeScript interface or a JSON Schema for the same data if useful.
Tips for a better result
- Paste a short example of the target JSON. It removes any guesswork about nesting and key names.
- Keep one header row with no merged cells. Merged headers are the main cause of misnamed keys.
- For translation sheets, ask your agent to flag missing or duplicate keys. Those are the bugs that reach production.
- If people update the sheet often, ask your agent for a small script that converts it, so the step can run in your build.
Excel to JSON converter: FAQ
- How do I convert an Excel sheet to JSON? Attach the workbook and describe the shape you want. Your agent reads the rows, uses the header row as keys and writes typed, valid JSON.
- Can each sheet become its own JSON key or file? Yes. Ask for one key per sheet in a single file, or one .json file per sheet.
- What happens to formulas? JSON gets the calculated values, not the formulas. Dates are written as ISO strings so any language can parse them.
- Can I get JSON from a Google Sheet? Download it as .xlsx and attach it, or connect Google so your agent can read the file from your Drive.
JavaScript is required to use the todo.is app.