How to convert excel to json for power bi data pipelines
- Step 1Prepare the Excel table — Ensure the sheet has a single header row with descriptive column names. Rename columns to match your Power BI dataset field names exactly to avoid extra mapping transformations downstream.
- Step 2Convert to a typed JSON array — Drop the .xlsx file into the tool and select 'array of objects' output. Date columns appear as ISO-8601 strings; measure columns as numbers. Check the preview to verify no numeric columns were detected as strings.
- Step 3Minify for API calls or keep pretty for inspection — For Power BI Push Dataset REST calls, enable 'Minify' to reduce the payload size. For Azure Data Factory debugging, keep pretty-print to validate field names and types visually before scheduling the pipeline.
- Step 4POST to Power BI or stage in Azure Blob — Use the Power BI REST API endpoint POST /datasets/{datasetId}/tables/{tableName}/rows with your JSON array in the body, or upload the file to an Azure Blob Storage container for ADF pickup via a Copy Activity.
Frequently asked questions
What is the Power BI Push Dataset row limit per API call?+
Power BI Push Datasets accept up to 10,000 rows per REST API call. For larger exports, split the JSON array into chunks and POST each chunk in sequence, or use Power BI Dataflows with a JSON connector instead of push datasets for datasets over 1 million rows.
Can I keep column names that contain spaces?+
Power BI column names allow spaces, but some connectors and DAX expressions handle them inconsistently. This tool preserves the header text exactly as typed. If DAX measures break on spaced names, rename the headers to PascalCase or camelCase in Excel before converting.
Is the Excel workbook uploaded to JAD Apps during conversion?+
No. Conversion is entirely client-side using the xlsx library. The workbook and any sensitive business figures — revenue data, budget projections, headcount — are never transmitted to JAD Apps or any third party.
Privacy first
Conversion runs locally in your browser. No file is uploaded — only metadata counters are saved for signed-in dashboard stats.