Spreadsheet files New
Connect CSV Folder to Excel, Sheets and AI
Query a folder of CSV files as one table. The agent works out the delimiter, encoding and columns for itself, then holds that shape steady so a bad export cannot quietly change your numbers.
One connection, every surface
Where your CSV Folder data can go
Connect CSV Folder once and the same read-only connection feeds all of these — no second setup, no second copy of the data.
CSV Folder to Excel
Microsoft Excel · Excel add-in
Pull live CSV Folder results straight into a worksheet and refresh them on demand — desktop Excel, Excel Online, Microsoft 365.
How Excel works no CSV Folder walkthrough written yetCSV Folder to Google Sheets
Sheets add-on
Run a saved CSV Folder query from the sidebar and drop the rows into the sheet. Shared collaborators can refresh it themselves.
How Google Sheets works no CSV Folder walkthrough written yetCSV Folder MCP server
Claude, Cursor and MCP clients
Give an AI assistant read-only access to CSV Folder with the schema it needs to write correct SQL — no credentials in the chat.
How MCP works no CSV Folder walkthrough written yetCSV Folder REST API
HTTP endpoint
Publish a CSV Folder query as an authenticated JSON endpoint any application can call, with an OpenAPI 3.1 spec and ready-made Postman, Insomnia and Hoppscotch collections. No database port is opened.
How REST API works no CSV Folder walkthrough written yetCSV Folder to Airtable
Automation platform
Sync CSV Folder rows into an Airtable base on a schedule, or fetch them inside an Airtable automation script.
How Airtable works no CSV Folder walkthrough written yetCSV Folder to Baserow
Automation platform
Feed a Baserow table from CSV Folder over the REST endpoint — self-hosted or Baserow cloud.
How Baserow works no CSV Folder walkthrough written yetCSV Folder to SeaTable
Automation platform
Keep a SeaTable base current with CSV Folder data without exporting a file or exposing the database.
How SeaTable works no CSV Folder walkthrough written yetCSV Folder to Smartsheet
Automation platform
Push CSV Folder results into a Smartsheet grid so plans and reports read from the source system, not last week's export.
How Smartsheet works no CSV Folder walkthrough written yetCSV Folder to Anvil
Anvil Works · App platform
Back an Anvil Python app with CSV Folder through the REST endpoint instead of embedding database credentials in the app.
How Anvil works no CSV Folder walkthrough written yetCSV Folder to Power BI
Power Query M
Paste the generated Power Query M into the Power BI Advanced Editor and the report reads live CSV Folder results over HTTPS — no ODBC driver, no database port opened.
How Power BI works no CSV Folder walkthrough written yetCSV Folder alerts and reports
Slack · Discord · Email · Webhook
Put a CSV Folder query on a schedule and have the rows delivered to Slack, Discord, email or a signed webhook — or hold the message until a row count, threshold or percentage change crosses the line you set.
How alerts and reports work no CSV Folder walkthrough written yetHow it works
5 steps, no inbound firewall change
Install the Network Agent where it can see the folder — a shared drive, a nightly drop-folder, a department share.
Point the connector at it. Every .csv is matched, subfolders included, and you can narrow that with patterns.
On the first sync the agent samples the real files and works out the dialect itself: delimiter, quote character, header row, text encoding and date formats. That result becomes the table's fixed schema.
Every CSV is then read against that schema into one table, and each row carries a _source_file column naming the file it came from.
Query it. Treat the folder as one table, group by file to compare drops, or filter to a single file — all with ordinary SQL.
Feature deep-dive
What CSV Folder gives you
Where the columns come from
- Sampled, not assumed — the agent inspects real files instead of trusting the first row of the first one.
- Encodings handled — UTF-8, UTF-16, Windows-1252 and Latin-1, so accented names and European exports do not arrive as garbled text.
- Money stays money — a column that always holds decimals is stored as an exact decimal, not a floating-point number, so totals do not drift by a cent.
- A column only some files have becomes an empty column in the others, rather than a reason to fail.
-- The whole folder as one table, then per file
SELECT _source_file, COUNT(*) AS rows, SUM(total) AS revenue
FROM data
GROUP BY _source_file
ORDER BY revenue DESC
When a file disagrees
If the very first files contradict each other — two different delimiters, or a column that is a date in one file and free text in another — the connector refuses to pin anything and tells you which files and which columns disagree. It will not quietly pick a winner and let you find out at month end.
- After that, one bad file is held back instead of corrupting the table: a changed header, an extra column, a value that does not fit, or a truncated last line.
- Its rows stay out, and files_events records exactly which file and which column caused it.
- Every other file in the folder still loads. One broken export never takes the report down.
One table, or one per layout
Recurring exports of the same report belong in a single table, and that is the default. If the folder genuinely holds different CSVs — a customer list sitting next to an order dump — switch to per-layout mode and each distinct layout gets its own table, up to 25 of them.
Shared by the whole File Set family
Every folder connector also gives you
- files_current — a live inventory: every file the connector can see right now, with its path, size and modified date.
- files_events — the audit trail: what appeared, what changed, what vanished, and anything held back, with the filename and the reason.
- directories and volumes — per-folder totals, daily growth history, and how much room is left on the drive.
- Only files that actually changed are re-read on each sync, so a folder of 50,000 files is not re-parsed because one new export landed.
Good to know
- Read-only, enforced — one statement at a time, SELECT and friends only. Your files are never written, moved or renamed.
- Nothing is uploaded — the data is cached, encrypted, on your own machine beside the agent. Only the result of a query leaves your network.
- Sensible defaults — up to 250,000 files, 16 folders deep, 512 MB per file, all adjustable. Recycle bins, .git and node_modules are always skipped.
- The SQL dialect is DuckDB — the same SQL you would write against any other connector.
Cross-source SQL
Join CSV Folder to the rest of your data
A folder of files is a set of SQL tables like any other, so one statement can join it to a database and an API at once. Each source runs only the part it can, streams the result back, and the join happens centrally — the sources never talk to each other and nothing is copied anywhere.
3 connections · 3 agents
One statement
-- nothing copied, nothing merged, nothing scheduled
SELECT c.region, COUNT(*) AS orders, SUM(i.amount_due) AS invoiced
FROM csv_drops.fileset.data1 f
JOIN pg_crm.public.customers2 c ON c.id = f.customer_id
JOIN billing.stripe.invoices3 i ON i.customer = c.stripe_id
GROUP BY c.region
ORDER BY invoiced DESC;
The three parts are connection, schema and table — and the connection name is whatever you called it. Illustrative columns; your tables will be your tables. Read-only applies to every piece: SELECT, WITH and EXPLAIN only, with a ceiling on how much any one source may hand over for a single query. How federated queries work
Connection details
What CSV Folder needs
- Folder
- One or more roots — local disk, mapped drive or UNC share; subfolders included, include and exclude patterns supported
- Schema
- Sampled from the real files on first sync — delimiter, quote character, header row, encoding, date formats — then pinned
- Encodings
- UTF-8, UTF-16, Windows-1252 and Latin-1, detected per file
- Money columns
- A column that always holds decimals is stored as exact DECIMAL, never floating point
- Limits
- Up to 250,000 files, 16 folder levels deep, 512 MB per file — all adjustable
- Credentials
- None — there is no server; the agent reads the files in place
- SQL dialect
- DuckDB — standard SQL, nothing folder-specific to learn
There is no database server in this picture. The agent reads the .csv files where they already live, caches the rows in an encrypted DuckDB store on the same machine, and re-reads only files that actually changed — a folder of 50,000 files is not re-parsed because one new export landed. Nothing is uploaded to Query Streams; the only thing that ever leaves your network is the result of a query.
Recurring exports of the same report belong in one table, and that is the default. If the folder genuinely holds different CSVs — a customer list sitting beside an order dump — per-layout mode gives each distinct layout its own table, up to 25 of them.
FAQ
Questions about CSV Folder
Which tools can read CSV Folder data through Query Streams?
All of them, from one connection: Excel, Google Sheets, MCP, REST API, Airtable, Baserow, SeaTable, Smartsheet, Anvil, Power BI, scheduled alerts and reports. Connect the folder once and every surface reads the same read-only connection — there is no per-tool setup and no second copy of the data.
Do my files get uploaded to Query Streams?
No. The Network Agent reads the files in place and caches rows in an encrypted store on the same machine. The files themselves never leave your network — only the result rows of a query do, over a single outbound encrypted connection with no inbound firewall port.
Can Query Streams change, move or rename my files?
No. Files are opened strictly read-only and are never written, moved or renamed. Queries are enforced read-only at the point of execution — one statement at a time, SELECT and friends only.
What does Query Streams need to connect to CSV Folder?
A folder path the agent machine can see — no server, no credentials, no drivers to install. Folder: One or more roots — local disk, mapped drive or UNC share; subfolders included, include and exclude patterns supported. Schema: Sampled from the real files on first sync — delimiter, quote character, header row, encoding, date formats — then pinned. Encodings: UTF-8, UTF-16, Windows-1252 and Latin-1, detected per file. Money columns: A column that always holds decimals is stored as exact DECIMAL, never floating point.
Can I join a folder of files to a database in the same query?
Yes — that is a federated query. One statement can reference CSV Folder and your other connections at once, written as connection.schema.table. Each source runs only the part it can and streams the result back; the join happens centrally, so the sources never connect to each other and nothing is copied or scheduled. Read-only applies to every piece — SELECT, WITH and EXPLAIN only — and there is a ceiling on how much any one source may hand over for a single query. Federated queries are a plan feature; the federated queries page carries the current source and size limits.
Put CSV Folder where the work happens
Install the agent, point it at your folder, and pick a destination.
Read-only Outbound only Credentials stay on the agent

