Supabase direct connections are IPv6-only by default, which breaks Excel Power Query silently. Use the session pooler on port 5432 instead.
Supabase is hosted PostgreSQL, so you have four ways to get data into Excel: Power Query's PostgreSQL connector, the dashboard's CSV export, the PostgREST REST API via Power Query's web connector, and a connector add-in. The main gotcha is the connection string. Supabase's direct connection is IPv6-only on most projects, and Excel Power Query on Windows does not handle IPv6 reliably, so the connection times out without a clear error. The fix is to use the session pooler connection string from the Connect panel in your Supabase dashboard. Here is every method with the specifics each one requires.
Method 1: Power Query PostgreSQL connector with the session pooler
In Windows desktop Excel, go to Data, Get Data, From Database and choose From PostgreSQL Database. Before this option connects, install Npgsql version 4.0.17 (not 4.1 or later) with GAC Installation selected. Then:
- In your Supabase dashboard, click Connect at the top of the project page and choose Session pooler.
- Copy the connection string. It will look like
postgres://postgres.[project-ref]:[password]@aws-[region].pooler.supabase.com:5432/postgres. - In Power Query, enter the host portion (
aws-[region].pooler.supabase.com) as the server andpostgresas the database. Use the username in the formatpostgres.[project-ref]for authentication.
The catch: Windows desktop Excel only. Do not use the direct connection string (db.[project-ref].supabase.co) because it resolves to IPv6 on most projects and silently fails in Power Query. Do not use the transaction pooler on port 6543 either, because it does not support prepared statements and will break the connection. The session pooler on port 5432 is the correct choice.
Method 2: CSV export from the Supabase Table Editor
In the Supabase dashboard, go to Table Editor, open the table you want, click the Export button (usually in the top-right of the table view), and choose CSV. Open the file in Excel. For custom queries, use the SQL Editor, run your query, and use the download button above the results grid to get a CSV.
The catch: every refresh is a manual repeat of the process. Works on any platform, including Mac and web Excel, because you are just opening a file. Fine for one-off snapshots.
Method 3: PostgREST API via Power Query Web.Contents
Supabase exposes every table through a PostgREST REST API. You can query it from Power Query using the Web connector. In Windows desktop Excel, go to Data, Get Data, From Other Sources, From Web, enter the URL for the table you want, and add the required headers. The anon key from your Supabase project settings provides read access to tables with a permissive Row Level Security policy.
A Power Query M query for a Supabase table looks like this:
let
url = "https://[project-ref].supabase.co/rest/v1/your_table?select=*",
headers = [
#"apikey" = "your-anon-key",
#"Authorization" = "Bearer your-anon-key"
],
response = Web.Contents(url, [Headers = headers]),
json = Json.Document(response),
table = Table.FromList(json, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
expanded = Table.ExpandRecordColumn(table, "Column1", Table.ColumnNames(Table.FromRecords(json)))
in
expandedReplace [project-ref], your_table, and your-anon-key with your project values. The anon key is in Project Settings, API.
The catch: Windows desktop Excel only (the Web connector works there). PostgREST returns 1,000 rows by default; add &limit=10000 to the URL or paginate with &offset= for larger tables. Also, RLS must be set up correctly for the anon key to read the table you want.
Method 4: Brooked for Excel (Mac, web, and scheduled refresh)
Brooked for Excel connects to Supabase as a standard Postgres database, using the session pooler connection string from your project's Connect panel. It runs inside Excel's ribbon and works in desktop Excel on Windows, desktop Excel on Mac, and Excel on the web. No Npgsql install, no driver architecture mismatch, no IPv6 troubleshooting. The AI analyst lets you ask plain-English questions about the data.
Honest framing: Excel support is in beta. Manual imports and the AI analyst work today; scheduled refresh is rolling out through the beta. The Google Sheets version of the connector is fully live, so the Supabase and Postgres plumbing itself is mature.
Setting up the Supabase connection
Open Brooked in the Excel ribbon, choose Supabase or PostgreSQL as the source, and paste the session pooler connection string from your Supabase project's Connect panel. Pick the tables or write a SQL query, choose the destination sheet, and import. For scheduled refresh, configure the interval in the Brooked settings panel once that feature is available in the beta.
Method comparison
| Method | Cost | Works on | Refresh | Best for |
|---|---|---|---|---|
| Power Query PostgreSQL connector (session pooler) | Free (requires Npgsql v4.0.17) | Windows desktop Excel only | Refresh All in Power Query | Windows with Npgsql installed; use session pooler URL |
| Dashboard Table Editor CSV export | Free | Any Excel | Manual re-export | Quick table snapshots without any setup |
| PostgREST API via Power Query Web.Contents | Free | Windows desktop Excel only | Refresh All in Power Query | Developers comfortable writing M queries |
| Brooked for Excel | Free during beta | Desktop, Mac and web Excel | Scheduled (rolling out in beta) | Mac, web Excel, and hands-off refresh |
What teams build with this
- User growth dashboards pulling signup and churn data from Supabase into a formatted Excel workbook
- Revenue reports joining orders, subscriptions, and refund tables for a weekly finance review
- Support queue snapshots from a Supabase-backed help desk, refreshed each morning for the ops team
- Content moderation summaries showing flagged items by type and status, updated daily
- A/B test result tables exported from a Supabase experiment log for analysis in Excel pivot tables
Troubleshooting common issues
Related Articles
- How to Connect PostgreSQL to Excel
- How to Connect SQL Server to Excel
- How to Connect Supabase to Google Sheets
Frequently asked questions
Why does my Supabase connection fail silently in Excel Power Query?
The most likely cause is that you used the direct connection string, which points to an IPv6-only address on most Supabase projects. Excel Power Query on Windows tries IPv4 first or only, and the connection times out without a useful error message. Use the session pooler connection string from the Connect panel in your Supabase dashboard instead. It resolves to an IPv4 address and uses the same port 5432.
What is the difference between the Supabase session pooler and the transaction pooler?
Both are run by Supavisor, Supabase's connection pooler. The session pooler on port 5432 gives each connection a dedicated backend session and supports prepared statements, making it compatible with tools like Power Query and ODBC. The transaction pooler on port 6543 shares connections between queries and does not support prepared statements, which breaks most desktop database tools including Excel. Use the session pooler for Excel connections.
Can I connect Supabase to Excel on a Mac?
Not with Power Query or ODBC. Both depend on Windows drivers. On a Mac, the options are exporting CSV from the Supabase Table Editor or using the PostgREST REST API with a tool that runs on Mac, or using a connector add-in like Brooked that supports Excel for Mac natively.
Can I connect Supabase to Excel on the web?
Power Query database connectors do not work in Excel on the web. You need a manual export or an add-in. Brooked for Excel works in the web version of Excel and connects to Supabase's underlying Postgres database.
Does Supabase have a direct Excel add-in?
Supabase does not publish an official Excel add-in. The official integrations are PostgREST for REST access, the JavaScript and other client libraries, and the standard Postgres connection string for direct database access. For Excel specifically, the options are Power Query via the Npgsql-backed PostgreSQL connector, the PostgREST API via Power Query Web.Contents, CSV exports, or a third-party add-in.
Can Supabase data refresh automatically in Excel?
Refresh All in Power Query re-runs the query when you click it, but Excel has no built-in scheduler. Unattended refresh requires a macro on a machine that stays awake, or a connector add-in. Brooked for Excel is rolling out scheduled refresh through its beta.
How do I export all data from Supabase to a file?
For individual tables: go to the Supabase Table Editor, click the three-dot menu next to the table, and choose Export Table as CSV. For custom queries: use the SQL Editor, run your SELECT statement, and click the download button above the results. For a full database dump, use pg_dump with the direct connection string. For a single table via the API, query the PostgREST endpoint with a high limit and save the JSON or CSV response.
Get live Supabase data in Excel, on any platform.
Brooked for Excel is in beta and free to try. Using Google Sheets instead? Read the Sheets version of this guide.
See Brooked for Excel →

