Back to Blog

Refreshing a Power BI Semantic Model from a Local Excel Workbook - What Actually Happens

August 7, 20268 min readMichael Ridland

Almost every organisation I have worked with has that one Excel file. It lives on someone's laptop, or in a folder on a shared drive that only three people know the path to, and half the business quietly depends on it. Someone built a Power BI report on top of it, published the report, and now expects the numbers to update. Then the refresh fails, nobody is quite sure why, and the report shows figures from a fortnight ago while everyone carries on making decisions off it.

If that sounds familiar, this post is for you. Refreshing a Power BI semantic model from a local Excel workbook is one of those things that looks trivial and turns out to have real teeth. Microsoft's documentation on refreshing from a local drive covers the mechanics. What I want to add is the practical view of why it goes wrong so often, and how we set it up so it keeps working after we leave.

The bit that trips everyone up

Here is the thing people miss. When you build a report in Power BI Desktop against an Excel file at, say, C:\Users\jenny\Documents\sales.xlsx, and then publish that report to the Power BI service, the service does not have your file. The path is baked into the model, but the path points to a drive that lives on Jenny's machine. The cloud has no idea what C:\Users\jenny is. So when the service tries to refresh, it cannot reach the file, and the refresh fails.

This catches people out because everything works perfectly in Desktop. You click refresh on your laptop and the numbers update, because the file is right there. The gap only shows up once the report is in the service and expected to refresh on its own. I have watched more than one person spend an afternoon convinced the report is broken when the report is fine, the file just is not reachable from the cloud.

The fix is a data gateway. The gateway is a small piece of software that runs on a machine inside your network, and it acts as the bridge between the Power BI service and the file sitting on a local or network drive. When the service wants to refresh, it asks the gateway, the gateway reads the file from where it actually lives, and the data flows back up. No gateway, no local file refresh in the service. It really is that binary.

Personal gateway or standard gateway

There are two flavours, and picking the wrong one is a common early mistake.

The personal mode gateway is the quick option. It runs under your account, it is simple to install, and it is aimed at one person refreshing their own datasets. For an individual analyst who just needs their own report to update, it is fine. The catch is that it is tied to the machine it runs on, and if that machine is off, asleep, or the person has gone on leave with the laptop in a bag, the refresh does not happen. I have seen a monthly board report silently stop refreshing because the analyst who owned the personal gateway was on holiday and their laptop was shut in a drawer.

The standard gateway, the one Microsoft calls the on-premises data gateway, is what you want for anything a team relies on. It runs as a service, it can be installed on a server or a machine that stays on, and multiple people can share it. It also handles multiple data sources and is the same gateway you would use for SQL Server, a file share, and other on-premises data. For any report that matters to more than one person, this is the right answer. The extra setup is worth it, and it is not much extra.

My blunt advice: if a report has an audience beyond you, do not use personal mode. Put a standard gateway on a machine that stays on, and save yourself the awkward conversation about why the numbers are stale.

Where the file lives matters more than people think

The location of that Excel file is not a detail, it is the whole ballgame for reliability.

A file on someone's personal laptop is the worst case. Laptops get turned off, they leave the building, they get replaced, and the folder structure changes when IT reimages the machine. Every one of those events breaks the refresh. A file on a proper network share, on a server that stays on and gets backed up, is far more stable. The gateway can be pointed at a network path, and as long as the account the gateway runs under has permission to read that path, it will keep working.

So the first question I ask when someone shows me a flaky Excel-backed report is not "what does the model look like", it is "where does the file live and who can turn that machine off". Nine times out of ten the reliability problem is really a file location problem wearing a technical disguise. Move the file somewhere sensible and half the trouble disappears.

There is also the matter of the path itself. If you build the report against a mapped drive letter like Z:\, that letter might mean something different on the gateway machine, or nothing at all. Using a full UNC path, the \\server\share\folder\file.xlsx form, is far more reliable because it means the same thing everywhere. This is a small detail that saves a genuinely annoying class of failure.

This is the kind of unglamorous plumbing that decides whether a reporting setup is dependable or a constant low-grade headache. It is exactly the sort of thing our Power BI consultants sort out early, because getting the foundation right is far cheaper than firefighting broken refreshes every month.

Credentials and permissions, the other silent killer

Even with a gateway in place and the file in a sensible spot, refresh can still fail on permissions, and the error messages are not always helpful about it.

The gateway reads the file using a specific account. That account needs permission to actually open the file. If the file sits in a folder that only Jenny can read, and the gateway runs under a service account that has never been granted access to that folder, the refresh fails with a permissions error that sends people down entirely the wrong path. I have seen teams rebuild an entire model chasing a problem that was one missing folder permission.

You also configure credentials for the data source inside the Power BI service, telling it how to authenticate to that file through the gateway. Get that mapping wrong and you get failures that look like a data problem but are really an access problem. When we set this up, we are deliberate about which account the gateway uses, what it can reach, and documenting that, so the next person is not reverse-engineering it in a panic six months later when it breaks.

My honest take on the whole approach

Let me be straight about something. Refreshing Power BI from a local Excel file works, and sometimes it is genuinely the right call, but it is rarely the setup I would design from scratch. It is usually where organisations end up because the Excel file already existed and building a report on top of it was the fast path.

If the data in that workbook matters enough to report on and refresh regularly, there is a real question worth asking: should it be in Excel at all? A file that one person edits, that can be broken by inserting a column, renaming a tab, or reformatting a cell, is a fragile foundation for anything the business leans on. I have seen a whole finance dashboard fall over because someone helpfully sorted a column in the source sheet and shifted the shape of the data the model expected. Excel is forgiving to the person editing it and unforgiving to the model reading it.

That said, I am not precious about it. Sometimes Excel is the pragmatic reality and the job is to make the refresh from it as solid as possible rather than to boil the ocean and migrate everything into a database on day one. A standard gateway, a stable network location, a full path, and the right permissions will get you a setup that keeps working. Just go in with your eyes open that the workbook is the weak link, and plan to move the important stuff onto firmer ground when you get the chance.

For the genuinely important data, moving it into a proper source, whether that is a database, a Fabric lakehouse, or something managed, changes the reliability picture entirely. That is a data platform conversation rather than a refresh one, and it is the kind of thing we work through as part of business AI strategy, because clean, dependable data is the thing every AI and analytics effort quietly stands or falls on.

Where I would start

If you have a report that refreshes from a local Excel file and it keeps failing, work through it in this order. Is there a gateway at all, and is it the standard one rather than personal mode? Is the file on a machine that stays on, ideally a network share rather than a laptop? Is the path a full UNC path rather than a mapped drive letter? Does the account the gateway runs under actually have permission to read that file? Four questions, and most broken Excel refreshes fail on one of them.

Fix those and you will have a refresh that just works, quietly, month after month, which is all anyone actually wants from it. If you would rather someone just set it up properly and hand it back working, that is bread-and-butter work for us. Take a look at our data and analytics services or get in touch and tell us what you are wrestling with.