Skip to main content
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Not applicable

Programmatically change CSV data source in PBIX file

Hello everyone,


I have an ETL tool that operates on certain targets. Each ETL run produces a set of CSV files in certain well-defined shape.


I have chosen a single set of CSVs as a data source for PBIX file. After importing them, I create variety of visualizations (grids, matrix, column bars, sankeys, etc) to display the data in various pleasing ways.


I would like to target a different set of CSVs without having to recreate data connections and visualization widgets. To do this manually, I can do the following:

1. make a copy of PBIX file

2. open new file Power BI Desktop

3. adjust path to CSV data source files to the new folder

4. save and apply queries to update the visualizations with new data


Now I would like to automate those steps. I do not see any API for manipulating PBIX files, and the file format appears to be opaque. 


Thinking that this might be just a variation on OpenXML Office file format, I tried the following:

- Unzip the PBIX file

- Unzip the DataMashup file (complains about there being data past the end of file though)

- Edit "DataMashup\Formulas\Section1.m" to point to the new location

- Zip everything up into PBIX file

However, Power BI Desktop complains about the file being corrupted


Is what I am trying to do possible?

Not applicable

I've realized that I can build a PBIT template file and solved the problem that way.

Helpful resources

July 2024 Power BI Update

Power BI Monthly Update - July 2024

Check out the July 2024 Power BI update to learn about new features.


Fabric Community Update - June 2024

Get the latest Fabric updates from Build 2024, key Skills Challenge voucher deadlines, top blogs, forum posts, and product ideas.