Importing CSV Data into SQL Using Power Automate, Excel Script & Stored Procedures

Managing data from CSV files and storing it in SQL databases is a common task in modern workflows. By leveraging Power Automate, Excel Scripts, and SQL Stored Procedures, we can build a seamless, automated pipeline to read data from a CSV file, convert it into JSON, and insert it into an SQL table.

This blog walks you through the process, with step-by-step guidance and screenshots.

Solution Overview

Here’s how we’ll accomplish this:

  1. Upload CSV: A CSV file is emailed or uploaded to a folder in OneDrive/SharePoint.
  2. Power Automate Flow:
    • Extract data from the CSV file using an Excel Script.
    • Convert the CSV data into JSON format.
    • Pass the JSON to a stored procedure in SQL Server.
    • Insert data into the SQL table using the stored procedure.

Step 1: Prepare the Environment

1.1 Set Up the SQL Table

Create an SQL table in your database to store the data from the CSV file. For example:

CREATE TABLE EmployeeData (

    EmployeeID INT,

    Name NVARCHAR(100),

    Department NVARCHAR(50),

    Salary FLOAT

);

1.2 Create a Stored Procedure

This stored procedure will take JSON input and insert it into the table:

CREATE PROCEDURE InsertEmployeeData

    @JsonData NVARCHAR(MAX)

AS

BEGIN

    — Parse JSON and insert data into EmployeeData table

    INSERT INTO EmployeeData (EmployeeID, Name, Department, Salary)

    SELECT

        JSON_VALUE(value, ‘$.EmployeeID’) AS EmployeeID,

        JSON_VALUE(value, ‘$.Name’) AS Name,

        JSON_VALUE(value, ‘$.Department’) AS Department,

        JSON_VALUE(value, ‘$.Salary’) AS Salary

    FROM OPENJSON(@JsonData);

END;

Step 2: Create an Excel Script to Parse CSV

2.1 Write the Excel Script

Create an Excel Script to read the CSV file and convert it into JSON. Follow these steps:

  1. Open Excel Online.
  2. Go to Automate > Code Editor and create a new script with the following code:

function main(workbook: ExcelScript.Workbook): string {

  const sheet = workbook.getActiveWorksheet();

  const rows = sheet.getUsedRange().getValues();

  const headers = rows[0];

  const dataRows = rows.slice(1);

  const jsonArray = dataRows.map(row => {

    const obj: any = {};

    headers.forEach((header, index) => {

      obj[header as string] = row[index];

    });

    return obj;

  });

  return JSON.stringify(jsonArray);

}

  1. Save the script as ConvertCsvToJson.

Step 3: Build the Power Automate Flow

3.1 Create a Flow

  1. Go to Power Automate and create a new flow.
  2. Choose the trigger: “When a file is created in a folder” (OneDrive/SharePoint).

3.2 Read the CSV File

Add an action: “Run script” under the Excel Online Business connector.

  • Select the location of your OneDrive/SharePoint file.
  • Choose the workbook and worksheet where the CSV is uploaded.
  • Select the script: ConvertCsvToJson.

3.3 Capture JSON Output

Save the JSON output of the script to a variable. Add the action “Initialize variable”:

  • Name: CsvDataJson.
  • Type: String.
  • Value: Outputs of the Run Script.

3.4 Call the SQL Stored Procedure

Add the action “Execute Stored Procedure (V2)” under the SQL connector.

  • Select your database connection.
  • Choose the stored procedure: InsertEmployeeData.
  • Add the JSON variable (CsvDataJson) as the input parameter for @JsonData.

Step 4: Test the Workflow

4.1 Upload a Sample CSV

Upload a CSV file like the one below to the designated folder:

EmployeeID,Name,Department,Salary

1,John Doe,IT,75000

2,Jane Smith,HR,65000

3,Mark Johnson,Finance,85000

4.2 Monitor the Flow

  • Go to the Run History in Power Automate and monitor the flow execution.
  • Verify that the Excel script converted the CSV into JSON and that the JSON was passed to the stored procedure.

Step 5: Validate Data in SQL

Run a query in your SQL database to ensure the data was inserted correctly:

SELECT * FROM EmployeeData;

You should see the following output:

EmployeeIDNameDepartmentSalary
1John DoeIT75000.0
2Jane SmithHR65000.0
3Mark JohnsonFinance85000.0

Benefits of This Solution

  • Automation: No manual intervention is required; the workflow runs automatically whenever a new CSV is uploaded.
  • Scalability: Works with any number of rows or columns as long as the schema matches.
  • Flexibility: Easily extend the workflow to include additional processing or data validation steps.

Conclusion

Using Power Automate, Excel Scripts, and SQL Stored Procedures, we’ve created a robust, automated solution for importing CSV data into SQL. This workflow eliminates manual effort, reduces errors, and ensures data is always up-to-date. With these tools, you can build scalable and efficient data pipelines for your organization.

Afroz Labbai 

Data Engineering 

Addend Analytics 

Interactive Power BI Dashboard Template

Discover how your data could look, without building from scratch.

Addend Analytics is a Microsoft Power BI-partners based in Mumbai, India. Apart from being authorized for Power BI implementations, Addend has successfully executed Power BI projects for 100+ clients across sectors like Financial Services, Banking, Insurance, Retail, Sales, Manufacturing, Real estate, Logistics, and Healthcare in countries like the US, Europe, Switzerland, and Australia. Get a free consultation now by emailing us at kamal.sharma@addendanalytics.com

Addend Analytics is a Microsoft Gold Partner based in Mumbai, India, and a branch office in the U.S.

Addend has successfully implemented 100+ Microsoft Power BI and Business Central projects for 100+ clients across sectors like Financial Services, Banking, Insurance, Retail, Sales, Manufacturing, Real estate, Logistics, and Healthcare in countries like the US, Europe, Switzerland, and Australia.

Get a free consultation now by emailing us or contacting us.