Skip to main content

Consume Local File System As A Data Source In Power BI

Overview
We all know that Power BI is a very good business intelligence tool. Sometimes, there is a situation when we need to prepare a report using a file system. In this article, we will learn how.
Example
I want to prepare a report for all the available files in one of the specific folders from my local system. I also want to filter the files based on creation and modification dates and their extension.
Power BI provides a connector to consume the data from the folder structure. We can get all files from a specific folder but there is one limitation with this connector; it provides us a list of all files in a flat file structure instead of TreeView structure.
Now, let’s get started.
At the end of the article, you will be able to produce a similar kind of report. You can also download a report from here.
 
Step 1
Open Power BI Desktop.
Step 2
Click on Get Data > File > Folder. Then, click "Connect".

 
Step 3
It asks for local file system path. Click on "Browse" and select the folder for which you want to prepare the Power BI report.

 
In my case, I will select "Downloads" folder from the local file system.

Press OK. It will take some time to grab data from a file system.
Step 4
Now, our data source is ready. We get the following properties for our folder structure.

 
  • Date accessed
  • Date created
  • Date modified
  • Extension
  • Folder Path
  • Name
The below screenshot shows the data for download folder.

 
Step 5
Now, we will set all our visuals. First, let’s add slicer visual to filter the data based on creation date.

 
Note You can format the visual as per your requirement. 
Secondly, let’s add a slicer visual to filter the data based on the date modified.
 
Step 6
I want to show file count by extension. So, I will use the table visual.

 
I have added the following columns to the table.
  • Extension
  • Extension > Right click > count = So It will become Count of Extension.
The table will look like this.
 

 
Step 7
I want to add a file name with description. So, I will use table visual again.

 
I have added the following columns to this table.
  • Name
  • Folder Path
Now, our table will look like this.

 
Step 8
Now, I want to represent the file count by extension in a graphical form with a pie chart. So, I will add a Pie chart and add the following columns.

 
In Legend field, I will add > Extension
In Values field, I will add > Count of Extension
So, my Pie Chart will look like this.

 
When I hover on any visual, it will show the file extension with file count.

 
Example
In this case, it is showing .xml extension is having 274 files in the "downloads" folder.
Step 9
Now, I want to show the total number of files available in a folder. For that, I will use Card from visual library.

 
Select "Name" from the right side, check on it, and check "Count (Distinct)".

 
It will look like this.

 
Step 10 
Now, I want to display the total file count by extension. So, I will use the card.

 

 
Step 11
Now, let’s filter based on file extension. I want to see the list of .pdf files only. I will select .pdf extension from pie chart.
My data is filtered based on the .pdf extension.

 
Step 12
Let’s filter data based on created date and modified date. Drag the slicer or select date from date picker.
Data is filtered based on the selected slicer.

 
Conclusion
This is how we can prepare Power BI report using file system data source.

Comments

Popular posts from this blog

How To Lock Objects In Power BI

Overview Sometimes, there is a situation where when we open a report and click on any visual it accidentally nudges a chart a little bit to the right or left. Sometimes, by mistake when viewing a report, the arrangement of visuals scatters a little bit. Microsoft rolls out one new amazing feature to resolve this issue, that is, Lock Objects in Power BI. Advantages of using this feature When our purpose is to only view a report, this feature is a boon for us. Visualization’s position is not changed. Saves a lot of the developer's time to resolve the position related issues. Note   -  This feature is not saved with the report. So, every time you open a report, you need to enable this feature. Now, let’s understand this feature in a brief manner. To understand this, I will first show you one report in which I have not enabled “Lock Objects” feature. Step 1 The below screenshot shows my report which doesn’t have the enabled Lock Objects feature. ...

Use SharePoint Online List As A Data Source In Power BI

Introduction In this article, we will check how we can use SharePoint List as a data source in Microsoft Power BI. Please follow the below steps to establish the connection of SharePoint Online list with Power BI.  Step 1 Open Power BI Desktop > Get Data > Click More.   Step 2 Search for SharePoint > SharePoint Online List.   Step 3 Enter the URL of your SharePoint site.   Step 4 Click on Organizational account > Sign In.   Step 5 It will open the screen of Office 365 Login > Enter Credentials.   Step 6 Click on Connect.   Step 7 It will show all the lists available in the SharePoint - lists are on the left corner and their preview is on the right. Select all the lists which you want to use directly in the Power BI. Click on Load.   Step 8 It will load all the lists. Expand "Fields" column to view all the fields shown in the SharePoint List.   We can also view all the...

How to partition or split DataTable in C#?

Today we will discuss how we can divide or split a very large data table into fixed size of chunks? Scenario: Suppose there is a data table which has 1000 Rows. When you perform for each loop on data table and read each row at that time it will take too much time. If we devide 1000 Rows datatable into 10 fixed sizes (e.g. 100 Rows) datatable, It will take less time. Let's check how to achieve it. Here is a code. private static List<DataTable> SplitTable(DataTable originalTable, int batchSize) { List<DataTable> tables = new List<DataTable>(); int i = 0; int j = 1; DataTable newDt = originalTable.Clone(); newDt.TableName = "Table_" + j; newDt.Clear(); foreach (DataRow row in originalTable.Rows) { DataRow newRow = newDt.NewRow(); newRow.ItemArray = row.ItemArray; newDt.Rows.Add(newRow); i++; if (i == batchSize) ...