Check Excel's built-in JSON path before creating a CSV
If your Excel build includes the Power Query JSON connector, use that built-in import path when you need repeatable transformations rather than a one-time CSV. In Excel's Get Data experience, select the JSON connector, open a local JSON file, and review the automatically detected table in Power Query before loading it. Microsoft lists the connector for Excel but warns that connector availability can vary by version and host.
That built-in route is useful when the same source will be refreshed or when records and lists need deliberate expansion. Inspect every generated step: automatic table detection can flatten nested data, but only the data owner can decide whether an order and its line items belong in one repeated table or in two related tables. Do not treat an automatically expanded preview as an approved data model.
If the JSON connector is unavailable, its menu differs in your build, or the recipient explicitly requires a CSV, prepare a flat array first and then import the resulting file through Data > Get & Transform Data > From Text/CSV. Microsoft Support currently lists that text/CSV workflow for Excel for Microsoft 365, Excel 2024, Excel 2021, Excel 2019, and Excel 2016. Excel for Mac and Excel for the web can present different commands, so use their product-specific import entry and perform the same preview checks.
Decide the table boundary before converting anything
An Excel-ready CSV needs one stable set of columns and one row shape. Before converting JSON, identify the top-level records, choose the columns, and separate nested one-to-many data instead of squeezing it into a cell.
For example, an order export might contain an order object with order_id, ordered_at, customer, and an items array. A useful workbook design often has an orders.csv table with one row per order and an order_items.csv table with one row per item. Both tables carry order_id so a reviewer can relate them. The customer object might contribute an approved customer_id column, while an address object may be omitted or placed in a separately controlled table.
Write the mapping before editing the data:
- Name each output table and state what one row represents.
- List the exact column names in their required order.
- Mark identifiers that must remain text, especially values with leading zeros.
- Decide how missing, null, and empty-string values should appear.
- Identify nested lists or objects that require another table or an explicit field selection.
- Choose one known order that can be traced through every output.
This is a modeling decision, not a formatting trick. Repeating order totals on every item row can cause accidental double counting. Putting the full items array into one CSV cell can make the sheet look populated while leaving the data unusable for sorting and formulas.
Prepare a flat JSON array with consistent keys
The browser converter expects a non-empty top-level JSON array. For an array of objects, its CSV headers come from the keys of the first object only. Later objects with extra keys do not create new columns, and missing keys become empty cells. Therefore the first object must not be used as an accidental schema.
Create a small, synthetic fixture with the exact keys in every object. For the orders table, a flat object could contain order_id, ordered_at, customer_id, and total. For the item table, each object could contain order_id, line_number, sku, and quantity. Avoid customer names, addresses, tokens, or production records while checking the structure.
Nested values must be handled before conversion. In the current component, an object value becomes the text [object Object], while an array is reduced to a comma-joined string representation. Neither result preserves a reliable relational structure. Select the needed scalar field, create a separate table, or use Power Query to expand the record or list deliberately.
Run the fixture through the JSON formatter and validator before conversion. Confirm that it is one array, that every intended row is an object, and that the first and last objects have the same keys. Syntax validation cannot decide whether customer_id is allowed to leave the source system or whether a total has the correct currency, so keep the business review separate.
Convert one table at a time with the CSV JSON tool
Open the CSV to JSON and JSON to CSV converter, paste one flat fixture into the JSON side, choose the one-character delimiter required by the receiving process, and run JSON → CSV. The csv-json component creates one header row from the first object and one CSV row for each array item.
The component quotes values when they contain the delimiter, a comma, a double quote, or a line break, and doubles embedded double quotes. It does not download a workbook, create multiple sheets, infer an Excel number format, or validate the destination template. Copy the resulting text only into an approved UTF-8 text workflow, save it under a new .csv filename, and keep the original JSON unchanged.
Convert orders and order_items separately. Do not paste both arrays together and expect the tool to invent two sheets. Use clear filenames such as orders-2026-08-09.csv and order-items-2026-08-09.csv, then record the shared key and row meaning in the delivery note.
Before using real data, include difficult fixture values: a leading-zero ID, a blank optional field, a note containing a comma, a double quote, and non-English text. Check that each remains in one cell after import. A clean-looking CSV text preview is not enough because Excel can still interpret dates, long numbers, and identifiers according to its own type rules.
Import through Excel's preview and control the types
In the supported desktop Excel editions, use Data > Get & Transform Data > From Text/CSV, select the new CSV, and inspect the preview before choosing Load or Transform Data. Confirm the delimiter and encoding first. If a row breaks into too many columns, return to the CSV generation step and inspect its quoting rather than manually shifting cells.
Use Transform Data when identifiers, dates, or decimals need explicit types. Set order IDs and postal-style codes to text before loading so leading zeros are not lost. Confirm date interpretation against the source timezone and format. For money, verify the decimal separator and currency meaning instead of assuming that a value displayed as a number carries the right unit.
The CSV format cannot contain a live relationship between the two files. After loading, create separate worksheets or queries and keep order_id as a stable text key. If the business needs automatic refresh, joins, or nested expansion, return to Power Query and document those transformations instead of repeatedly creating manual CSV copies.
When the menu path differs, search Excel's Data tab for Get Data or Text/CSV and check the product's Microsoft help. Do not substitute File > Open without reviewing the result: opening a CSV directly can apply current default data-format settings before you have controlled each column.
Verify counts, keys, and one complete order
Approval requires a record-level check across the source, CSV, and Excel table. Start with the known synthetic order, then repeat the same process with a small authorized sample before handling the full export.
Use this verification list:
- The orders row count equals the number of intended top-level orders.
- The item row count equals the sum of intended line items, not the order count.
- Every item has an
order_idthat exists in the orders table. - Headers match the written mapping exactly and appear in the expected order.
- Later objects did not lose a key that was absent from the first object.
- Leading-zero identifiers remain text after Excel loads the file.
- Commas, quotes, line breaks, and non-English text remain inside their intended cells.
- Null, missing, and empty values follow the destination's documented rule.
For a separate visual check, the CSV and Excel preview tool can open a non-sensitive CSV and show extracted rows and columns in the browser. It is preview-only and renders at most 500 matching data rows, so it cannot prove that the entire file is complete. It also does not write changes back to Excel or validate formulas, relationships, or business rules.
If counts disagree, stop before delivery. Compare the flat arrays with the written mapping, check whether a nested list was omitted, and regenerate from the unchanged JSON source. Do not repair a large CSV by moving individual cells; that makes the transformation difficult to reproduce and audit.
Common questions
Can Excel import JSON without converting it to CSV first?
Yes, when the Power Query JSON connector is available in that Excel version and host. Use the built-in Get Data experience, review the automatic table detection, and document any record or list expansion before loading.
Why did a nested object become [object Object] in the CSV?
The ToolboxHub converter does not flatten nested objects. Select an approved scalar field, create a related table, or use Power Query to expand the object. Do not deliver the placeholder text as if it preserved the source structure.
What happens when a later object has a key the first object does not have?
The current converter derives headers from the first object, so the later extra key is not added as a column. Normalize every object to the same written schema before conversion.
Should order items be repeated across columns in the order row?
Usually not when item counts vary. A separate item table with one row per line item and a shared order_id is easier to validate, filter, and join without inventing a maximum number of item columns.
Does an Excel preview prove the CSV is ready to import?
No. The preview helps check delimiter, encoding, and inferred types, but it cannot validate permissions, business rules, complete relationships, or the destination system. Compare known records and run a small approved import test.