Sunday, 6 July 2014

Import Data from Multiple Excel Files\Folders using SSIS/ETL

Intro: - This article is about SSIS, which is very useful tool provided by Microsoft, so let’s talk about a problem which we (database developers) face may times, and talk about its solution.
Many times we have got data in excel files, on daily bases, or got multiple files at a time having same schema, and we want to import these all in our database. So importing data from these files one by one is very time consuming and boring task.
 Best solution of this problem is ETL, you can create a SSIS package for import multiple excel file data.
Here we will discuss how to create SSIS package.
So let’s start.

Step 1: Create new integration Service Project as “Test”, here I am using visual studio 2010

Step 2: Right click on package and rename it as “ImportMultipleExcelFilesData.dtsx”

Step 3: Now create a folder with sub folder and multiple excel files,

Ex:- E:\Vikas Ahlawat\SampleSSIS\ExcelFiles

But make sure all Excel files have identical schema/format assuming all Excel files above contain data in worksheet “Sheet1”

Excel files Schema:-
Make sure that all three excel file should same schema like below
File1.xlsx’s Schema

Step 5: Right Click on Control Flow Window, and then click on Variables

Now click on Add Variable icon and then add a variable with name “FileName” of string type.

Step 6: Drag and drop foreach-loop container, and Inside it drag and drop “Data flow task”

Step 7: Right-click on the Foreach Loop container and select Edit. Then, Click on Collection “Collection” tab. Assign folder path and file type as shown below

Then go to “Variable Mappings“ tab and map variable created above like below

Step 8: Now double click on “Data Flow Task”
Drag one “Excel Source” task, double click on this to get “Excel Source Editor” Window
Now choose new and new window will open, now browse to your first excel file that is
E:\Vikas Ahlawat\SampleSSIS\ExcelFiles\File1.xlsx
Under “Name of the Excel Sheet” on “Excel Source Editor”, choose Sheet1$

Step 9: Now drag “OLE DB Destination” task, connect “Excel Source” to “OLE DB Destination”
Point this connection to your database and create new table or use an existing table

Step 10: Now go to "Data Flow task"s property and set DelayValidation property value as True. Otherwise it will insert File1 data three times.

Step 11: Now execute your package, and check your table you will find all three file data in your table.




Post a Comment

Find job here...