Combine Multiple Excel Files

broken image


In this article, you are going to learn how to copy sheets from multiple Excel workbooks into one workbook using C#. You will also learn how to copy data from several worksheets into one sheet. Let's start.

To merge files, you can use the following steps: First of all, extract all the files from the sample folder and save that folder at the desktop (or wherever you want to. Now, the next thing is to open a new Excel workbook and open 'POWER Query'. For this, go to Data Tab ➜ Get & Transform Data ➜. Feb 19, 2021 Under Macro name, select MergeExcelFiles and click Run. The standard explorer window will open, you select one or more workbooks you want to combine, and click Open. To select multiple files, hold down the Ctrl key while clicking the file names. Depending on how many files you've selected, allow the macro a few seconds or minutes to process them.

C# API to Merge Multiple Excel files

To combine multiple excel files to one excel file, involves two activities: Get data from multiple excel files and store it as query connections Append these query connections (i.e. Place the data one below the other) Store Data From Multiple Files As Connections.

Aspose.Cells for .NET is a well-known spreadsheet manipulation API that lets you create and process Excel files from within your .NET applications. You can either download the binaries of the API or get it installed using NuGet.

Combine Multiple Excel Files into One using C#

Sometimes, you need to merge multiple Excel files into one file. You want to copy worksheets from the source workbooks to the destination workbook as shown below. Excel documents can be of any version such as Excel 97, Excel 2010 or Excel 2016.

The following sample code shows how to combine multiple Excel files into one using C#.

View the code on Gist.

Combine Specific Worksheets of Excel Files using C#

The above code copies all worksheets in the source files to the destination file. However, you may want to copy specific worksheets from the source files to the destination file. For example, you have two Excel files and each has three worksheets named Sales, Employees and Expenses. You only want to copy Sales worksheet from both files to the destination file as shown in the following figure.

The following sample code shows how to combine specific worksheets of source files into destination file using C#.

View the code on Gist.

Merge Multiple Worksheets into One using C#

Sometimes, you need to copy data from several worksheets into one worksheet. For example, you have a few worksheets in an Excel file that contain information about different products, and you want to merge these sheets into one summary worksheet, like this:

The following code snippet shows how to copy data from several worksheets into one worksheet using C#.

View the code on Gist.

Conclusion

In this article, you have learnt how to programmatically combine multiple Excel files into one. You can either copy all worksheets of a source file or specific ones to the destination file. You have also learnt how to combine data of multiple worksheets into one worksheet. Please check the documentation of Aspose.Cells for .NET for more information. If you have any questions, please feel free to ask at our Support Forum. We will answer them in a few hours.

See Also

This post was contributed by Ken Puls and Miguel Escobar, Power BI experts and authors of the new ebook, '[M]agic Tricks for Data Wizards'.

Have you ever wanted to consolidate, combine or append data from multiple excel spreadsheets or workbooks? I bet you have, and it has been a painful process either done manually or via 3rd party add-ins. In this blog post, we'll show you how, with the newest version of the Power BI Desktop and Power Query for Excel, you can combine multiple data from Excel files into one big tall table.

The Scenario

In this specific case, we have an Office 365 group that we've created where we store some external sales data that do not come from our system. These files are provided by a 3rd party in order to give us a better understanding of the whole market and how well some products are doing on each market. Here's a few remarks about our case:

Each of these files has only 1 month of datawe'll have a file for January with just 1 sheet in it that will have all of the data for January.

These are all Excel files living a happy life in SharePoint – we get these files via email from the provider and then store them on our Office 365 group every month.

All of the files have the same structure, but different sheet names – all of the files only have 1 sheet and all of them have the same headers, but in a real case scenario the Power BI desktop and the process described here will work if you don't have the same headers on all of the files.

Now, what we want to do is something that can be summarized in a series of steps like the following:

  1. Access all of the files from our site – we need to connect to our O365 group or SharePoint site and get the files first
  2. Combine all of the data from the files into one big table – once we connect to this data source, we need to be able to combine/consolidate/append all of the data from each of those excel files into one big table
  3. Clean and transform the data – ultimately, we want to unpivot some columns and also make the table more manageable to use with the Power BI Desktop and the DAX language.

In the end, we want the result of the combination to look similar to this:

Getting Data from SharePoint

First things first, we need to get the data and the Power BI Desktop makes it easier for us to get our data from either SharePoint or any O365 Group storage.

Combine Multiple Excel Files Into One Python

From the Get Data experience, let's find the option for 'SharePoint Folder'. This option will only require a text string which would be the URL for a SharePoint site.

Where can I find this so called url? Which one of the urls found in SharePoint should I use??

Good question! What the tool is expecting here is the root URL to the SharePoint site itself. Here's a quick example:

My SharePoint site root url ishttps://powerbipanama.sharepoint.com/, but all of my files are actually in another site that starts with https://powerbipanama.sharepoint.com/sites/externalsales/ URL.

In order to use the correct URL, we need to be in the folder of the data that we're trying to get and check the url that our browser shows. If it has the if it starts with the format of https:///sites// then we need to use that url, otherwise we use the much simpler https://

In my own case, I'll be using the https://powerbipanama.sharepoint.com/sites/externalsales url in order to connect to my site.

Discord business. Once you input the url, you'll then be asked for your credentials – be sure to select the 'Organizational' type for your credentials and enter the same credentials that you use for your SharePoint site.

Now that we're in, we'll be able to see all of the files from all of the folders that we have access to in that specific site. This might be a pretty long list, so let's do some filtering on the 'Folder Path' column and select the folder where your data is being stored so you only get the files from it.

Filtering is key so you always get the files from the folder that you want. You can select multiple folders if you'd like as well.

We now have all of the files that we want to combine but, how do we combine these files?? What kind of magic is needed to consolidate all of them? Surely it can't be just 1 click to combine them, right? Let's find out.

New functionality! Combine Excel files with just 1 click

You might remember this popular posts from Microsoft itself on how to combine text and CSV files. It used to throw weird results with Excel files, but that changed with the latest version of the Power BI Desktop and Power Query.

Combine

This is now what happens after you click that button:

1. A new window will appear called ‘Combine Binaries' – it will first find the first Binary from the table, which in our case is 03-March.xlsx, and it'll create a sample function that will be applied to all of the other binaries.

We recommend always selecting the ‘Sample Binary Parameter'

In this window, you'll see all of the objects found in the 03-March.xlsx file. If you select for example the 03-March spreadsheet, the same process will be applied to the rest of the binaries so Power Query/Power BI Desktop will extract the data from the 03-March spreadsheet from each file.

This is not our case. Each of our files has a different sheet name, so we recommend for these of cases to select the 'Sample Binary Parameter' and click OK on this window.

2. Power Query / Power BI Desktop will do all the heavy lifting for you – you'll end up with a table like the one we see in the next image where you can see all of the objects from each file. In our case, we see from the 'Kind' column that all of our objects are simply sheets from the workbook and on the Name column we see the name of the workbook where each object comes from

After just 1 click, you have all of the data ready to be combined on the 'Data' column. The elements within the red and orange outline were automatically created by the tool.

Combine Multiple Excel Files Into One Vba

3. Expand the data found in the Data column – you're one step away from consolidating all of your data! Just click the button with the double opposite arrow found on the 'Data' column

Combine Excel Sheets In A Folder

Combine Multiple Excel Files
Files

Be sure to always click on 'Load more' so you can expand the columns from all of your tables

At this point, we can check that our data has been consolidated in one table

Power Query Combine Multiple Excel Files

YES!!!! All of the data from all of the 6 Excel files has been appended and now we have a table with all of this data.

Some more cleaning and transformation steps

After everything has been consolidated, we jump ahead and perform some cleaning and transformations shown within the outlined orange area

Here's a quick list of the final steps that we did:

  • Removed Columns – we removed some unnecessary columns like the 'Kind', 'Hidden' and 'Item' column
  • Promoted Headers – afterexpandingthe data, we noticed that the first row had the column headers so we immediately promoted the first row to become headers of the table
  • Renamed Columns – we simply renamed some of the columnslike the 'Name' column, which had the name of the product, to be named 'Product Name'
  • Filtered Rows1 – since all of our files had headers, some of them were found in some rows, so we filter those out
  • Unpivot Other Columns – we used theunpivot feature on all the columns except the name of the month and the name of the product so we could get the 'Attribute' and 'Value' columns
  • Renamed Columns1 – we renamed the 'Attribute' column to be 'Market' and the 'Value' column to be 'Sales'
  • Sorted Rows – we sorted the data (ascending) by the Month column
  • Changed Type – we defined the data types for each of the columns and hit Close & Apply

The Result

Last but not least, get creative and create a report based on your consolidated data!

Of course, you could integrate this new table to an existing data model to add even more context to your sales performance and understand how you're doing in each market.

New eBook Coming Soon

Combine Multiple Excel Files

This is now what happens after you click that button:

1. A new window will appear called ‘Combine Binaries' – it will first find the first Binary from the table, which in our case is 03-March.xlsx, and it'll create a sample function that will be applied to all of the other binaries.

We recommend always selecting the ‘Sample Binary Parameter'

In this window, you'll see all of the objects found in the 03-March.xlsx file. If you select for example the 03-March spreadsheet, the same process will be applied to the rest of the binaries so Power Query/Power BI Desktop will extract the data from the 03-March spreadsheet from each file.

This is not our case. Each of our files has a different sheet name, so we recommend for these of cases to select the 'Sample Binary Parameter' and click OK on this window.

2. Power Query / Power BI Desktop will do all the heavy lifting for you – you'll end up with a table like the one we see in the next image where you can see all of the objects from each file. In our case, we see from the 'Kind' column that all of our objects are simply sheets from the workbook and on the Name column we see the name of the workbook where each object comes from

After just 1 click, you have all of the data ready to be combined on the 'Data' column. The elements within the red and orange outline were automatically created by the tool.

Combine Multiple Excel Files Into One Vba

3. Expand the data found in the Data column – you're one step away from consolidating all of your data! Just click the button with the double opposite arrow found on the 'Data' column

Combine Excel Sheets In A Folder

Be sure to always click on 'Load more' so you can expand the columns from all of your tables

At this point, we can check that our data has been consolidated in one table

Power Query Combine Multiple Excel Files

YES!!!! All of the data from all of the 6 Excel files has been appended and now we have a table with all of this data.

Some more cleaning and transformation steps

After everything has been consolidated, we jump ahead and perform some cleaning and transformations shown within the outlined orange area

Here's a quick list of the final steps that we did:

  • Removed Columns – we removed some unnecessary columns like the 'Kind', 'Hidden' and 'Item' column
  • Promoted Headers – afterexpandingthe data, we noticed that the first row had the column headers so we immediately promoted the first row to become headers of the table
  • Renamed Columns – we simply renamed some of the columnslike the 'Name' column, which had the name of the product, to be named 'Product Name'
  • Filtered Rows1 – since all of our files had headers, some of them were found in some rows, so we filter those out
  • Unpivot Other Columns – we used theunpivot feature on all the columns except the name of the month and the name of the product so we could get the 'Attribute' and 'Value' columns
  • Renamed Columns1 – we renamed the 'Attribute' column to be 'Market' and the 'Value' column to be 'Sales'
  • Sorted Rows – we sorted the data (ascending) by the Month column
  • Changed Type – we defined the data types for each of the columns and hit Close & Apply

The Result

Last but not least, get creative and create a report based on your consolidated data!

Of course, you could integrate this new table to an existing data model to add even more context to your sales performance and understand how you're doing in each market.

New eBook Coming Soon

We would like to take this opportunity to tell you about an upcoming ebook for tips & tricks when working with the Get Data experience in the Power BI Desktop, a.k.a. Power Query.

The cool thing about this ebook? It'll be completely FREE!!





broken image