By Chris Davidson, founder of yForest · Updated September 26, 2026
An Excel workbook, unlike a CSV, can carry multiple sheets and formatting Snowflake has no use for. Data Sync reads the sheet you point it at and maps its columns straight into a Snowflake table.
No credit card. 14 days. Cancel in one click.
Quick answer: Add the Excel file as a connection, pick the sheet you want, then build a Data Sync into a Snowflake table: map columns, choose Insert, Update or Upsert, and run it, or save it as a recurring job. Pipelines tier.
A CSV is one flat table by definition. An Excel workbook usually isn't: someone built a summary sheet on top of raw data, added a pivot table tab, maybe left an old draft sheet in there from three versions ago. Getting the right sheet into Snowflake means being specific about which one actually holds the rows you want, not just pointing at the file.
A regional sales team keeps a workbook with a "Q3 Bookings" sheet that needs to land in Snowflake, refreshed weekly:
-- target table CREATE TABLE IF NOT EXISTS SALES.PUBLIC.BOOKINGS ( DEAL_ID VARCHAR, REP VARCHAR, AMOUNT NUMBER(12,2), CLOSE_DATE DATE );
Map the sheet's Deal ID, Rep, Amount and Close Date columns, set MODE to Upsert, and MATCH ON to deal_id. A deal that moved to a later close date updates the existing row instead of duplicating it. Save it as a job running weekly, timed after the team's usual Friday update to the workbook.
A workbook with a merged cell spanning a header row, common when someone's grouped several columns under one label, can leave the cells beneath the merge without the text a plain read would expect. Run Dry Run against a workbook that uses this pattern before trusting the preview, and unmerge the header row in the source file if the mapping looks off.
This reads sheet values, not formulas, charts, or Excel-native features like conditional formatting or pivot tables built on the sheet. If the workbook's real value is a formula's calculated output, that output has to already be a value in the cell, or computed upstream before the sheet is treated as a data source, not something Data Sync recalculates on its own.
If someone renames the "Q3 Bookings" sheet to "Q4 Bookings" next quarter, the file connection pointed at the old sheet name stops finding it. Naming the sync itself for what it feeds, not the specific sheet name, and updating the file connection each quarter is a more durable pattern than assuming a sheet name stays fixed forever.
If a column in the sheet is a formula, a running total or a lookup against another tab, it still reads as whatever value Excel last calculated when the file was saved. That's fine for most reporting uses, but it means the Snowflake copy reflects the workbook's state at load time, not a live recalculation; if the underlying inputs change without the workbook being resaved, the Snowflake table won't know until the next sync after a fresh save.
Getting a non-technical sales team comfortable typing into a warehouse table directly, rather than a spreadsheet, is a bigger ask than it sounds, and it removes the formatting, validation, and familiarity a workbook gives them for free. Letting the workbook stay the interface and syncing behind the scenes usually gets better data quality in practice than forcing a tool switch on the people entering it.
If the workbook lives in a synced OneDrive or SharePoint folder rather than a plain local file, the connection needs a stable, resolved local path, not a cloud-only placeholder that hasn't finished downloading. Confirm the file is fully synced to disk on the Mac before pointing a connection at it, since a partially synced file can read as empty or truncated in a way that looks like a QueryFlow problem but isn't.
If the sales team eventually migrates off Excel to Google Sheets, the underlying pattern here carries over directly, only the source connection type changes from a file connection to a Google Sheets connection, and the target mapping and MODE choice stay the same. It's worth knowing that switch doesn't require rethinking the whole sync, just repointing the source side of an otherwise unchanged job.
If several regions each keep their own bookings workbook rather than one shared file, the cleanest pattern is a separate file connection and a separate sync per region, all writing Upsert into the same Snowflake target table with a MATCH ON that includes a region column alongside the deal ID. That avoids the fragility of trying to consolidate multiple regions' data into one spreadsheet before it ever reaches QueryFlow.
Fivetran's pricing page (September 26, 2026) meters file-based sources the same way as any database connector: 500,000 MAR free, then a $5 base charge per connection between 1 and 1,000,000 MAR, usage above that behind a quote. A weekly sales workbook in the hundreds of rows stays inside the free tier regardless, so the practical comparison here is setup time, not row-based cost, and QueryFlow's $199.99-a-year Pipelines price covers every sync on the account, not just this one.
| QueryFlow Data Sync | Fivetran | |
|---|---|---|
| Pricing | $199.99/yr flat, covers all syncs | Free under 500,000 MAR per connector, then $5 base + usage |
| Sheet selection | Pick the exact sheet when adding the connection | Depends on connector; typically the whole file or first sheet |
| Setup | One file connection, one mapped sync | Connector setup through a guided wizard |
Dry Run shows what would write before anything does. After a real run, compare row counts against the sheet and check the job's history for type mismatches.
| If you see | Fix |
|---|---|
| Choose at least one key field | Pick a MATCH ON column for Update or Upsert modes. |
| Blank values under a header row | Check for merged cells in the header; unmerge them in the source file. |
| Sync can't find the sheet anymore | The sheet was renamed; update the file connection to point at the new name. |
When you add the file as a connection, you pick which sheet to read from. A workbook with a Summary tab and a Raw Data tab only pulls from the one you select; add the connection again pointed at a different sheet if you need both.
Formatting itself is ignored, only cell values are read. Merged cells can cause blank values in the cells Excel treats as part of the merge but doesn't display text in, so it's worth checking a Dry Run preview against a workbook that uses merged headers.
An account identifier, a warehouse, and a Programmatic Access Token, the same as any other Snowflake connection in QueryFlow.
Pipelines. Studio covers querying both Excel files and Snowflake, not building a sync between them.
14-day free trial, no card. Pick the sheet, map it, run it.
No credit card. 14 days. Cancel in one click.