{"id":1098,"date":"2026-10-25T09:00:00","date_gmt":"2026-10-25T09:00:00","guid":{"rendered":"http:\/\/jfdi-blog-excel-to-json"},"modified":"2026-10-25T09:00:00","modified_gmt":"2026-10-25T09:00:00","slug":"excel-to-json","status":"publish","type":"post","link":"https:\/\/jfdi.pro\/blog\/excel-to-json\/","title":{"rendered":"How to convert Excel to JSON"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">To convert Excel to JSON, open the <code>.xlsx<\/code> in a converter that reads each cell&#8217;s type, and save as JSON. In the <a href=\"https:\/\/jfdi.pro\/convert\/\">JFDI file converter<\/a>, drop in the spreadsheet, choose <strong>JSON<\/strong> and download. Each row becomes an object with the header row as its keys; numbers stay numbers, dates become ISO strings like <code>2024-03-25<\/code>, and codes such as <code>00123<\/code> stay text.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/jfdi.pro\/convert\/\">Convert Excel to JSON<\/a><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What you get<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A sheet like this:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Order ID<\/th><th>Date<\/th><th>Amount<\/th><th>Postcode<\/th><\/tr><\/thead><tbody><tr><td>00123<\/td><td>25\/03\/2024<\/td><td>1,250.50<\/td><td>SW1A 1AA<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">becomes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[\n  {\n    \"Order ID\": \"00123\",\n    \"Date\": \"2024-03-25\",\n    \"Amount\": 1250.5,\n    \"Postcode\": \"SW1A 1AA\"\n  }\n]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Notice what&#8217;s preserved: the leading zeros in the order ID, the date in an unambiguous format, and the amount as a real number without the thousands separator.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Workbooks with several sheets<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With one sheet, you get an array of rows. With several, you get an object with a key per sheet name, each holding that sheet&#8217;s rows. Choose <strong>Sheets \u203a First only<\/strong> for just the first.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Options<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Easy to read (indented)<\/strong>: pretty-printed with two-space indents. Untick for compact output.<\/li>\n\n<li><strong>Turn columns like address.city into nested objects<\/strong>: columns named with dots become nested objects, so <code>address.city<\/code> and <code>address.postcode<\/code> turn into <code>\"address\": { \"city\": \u2026, \"postcode\": \u2026 }<\/code>.<\/li>\n\n<li><strong>JSON Lines<\/strong> (pick it instead of JSON under Convert to): one object per line, the format many data tools and databases prefer for large files. With several sheets, each line gets a <code>sheet<\/code> field.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Going the other way<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">JSON to Excel or CSV works too. Nested data is spread into columns named by their path, such as <code>address.city<\/code>, and lists of simple values are joined with semicolons. Between JSON, XML and YAML, tick <strong>Keep the nested structure<\/strong> to convert the data as it is rather than as a table.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why not just save as CSV and convert that?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Because CSV loses the types: every value is text, and whatever reads it has to guess again. Going straight from Excel keeps what Excel knew: which cells are numbers, which are dates, and which are text that only looks like a number.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Is it safe for real data?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. The file is read and converted in your browser and never uploaded, which matters for customer lists and exports from internal systems. There&#8217;s no file-size limit beyond your device&#8217;s memory, and no limit on how many files you convert.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Related<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/jfdi.pro\/blog\/csv-leading-zeros-excel\/\">How to open a CSV in Excel without losing leading zeros<\/a><\/li>\n\n<li><a href=\"https:\/\/jfdi.pro\/blog\/csv-dates-changing-excel\/\">Why dates change when you open a CSV<\/a><\/li>\n\n<li><a href=\"https:\/\/jfdi.pro\/help-convert.html\">The file converter guide: JSON, XML and YAML<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Turn a spreadsheet into an array of JSON objects, one per row, with numbers as numbers, dates as ISO dates and codes kept as text. Nested objects and JSON Lines too. In your browser, nothing uploaded.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[91,90,33,89],"class_list":["post-1098","post","type-post","status-publish","format-standard","hentry","category-file-conversion","tag-data","tag-developers","tag-excel","tag-json"],"_links":{"self":[{"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/posts\/1098","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/comments?post=1098"}],"version-history":[{"count":1,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/posts\/1098\/revisions"}],"predecessor-version":[{"id":1153,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/posts\/1098\/revisions\/1153"}],"wp:attachment":[{"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/media?parent=1098"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/categories?post=1098"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/tags?post=1098"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}