HOW-TO · DATA SYNC

Get an Excel workbook into Snowflake without a script.

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.

Start 14-day free trial Download on theMac App Store

No credit card. 14 days. Cancel in one click.

macOS 15+ · Apple Silicon native · 14-day free trial · No credit card

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.

Why a workbook is a slightly different problem than a CSV

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.

Before you start

Steps

  1. Add the file as a connection: click the + next to Databases, pick CSV/Excel, and select the sheet.
  2. Open Pipelines → Build and click New Sync.
  3. On the left, pick the file connection as your source.
  4. On the right, pick your Snowflake connection and the target table, or create one.
  5. Drag columns across, or click AI Map to pair them by name.
  6. Pick a MODE: Insert for a fresh load, Update or Upsert for a refresh.
  7. For Update or Upsert, set a MATCH ON field that's unique per row.
  8. Click Dry Run, check the preview, then Save or run it now.

A worked example

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 gotcha worth knowing about merged headers

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.

What this doesn't do

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.

Naming the sync so a future edit doesn't break silently

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.

Handling a formula-driven summary column

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.

Why not just have the sales team enter data directly in Snowflake

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.

A note on file location and OneDrive or SharePoint sync

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.

What changes if the team moves to Google Sheets instead

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.

Handling multiple regional workbooks feeding one table

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.

What this costs against Fivetran

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.

Comparison

QueryFlow Data SyncFivetran
Pricing$199.99/yr flat, covers all syncsFree under 500,000 MAR per connector, then $5 base + usage
Sheet selectionPick the exact sheet when adding the connectionDepends on connector; typically the whole file or first sheet
SetupOne file connection, one mapped syncConnector setup through a guided wizard

Check it worked

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.

Troubleshooting

If you seeFix
Choose at least one key fieldPick a MATCH ON column for Update or Upsert modes.
Blank values under a header rowCheck for merged cells in the header; unmerge them in the source file.
Sync can't find the sheet anymoreThe sheet was renamed; update the file connection to point at the new name.

Sources

Load a CSV into Snowflake Snowflake Mac client Every warehouse, one client Integrations Sync BigQuery to Snowflake
QueryFlow Studio $9.99/mo · $99/yr
QueryFlow Pipelines $29.99/mo · $199.99/yr

Frequently asked

How does QueryFlow handle a workbook with several sheets?

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.

Does formatting, like merged cells or a header row with bold text, cause problems?

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.

What credentials does the Snowflake side need?

An account identifier, a warehouse, and a Programmatic Access Token, the same as any other Snowflake connection in QueryFlow.

Which tier includes this?

Pipelines. Studio covers querying both Excel files and Snowflake, not building a sync between them.

Skip the export-to-CSV step.

14-day free trial, no card. Pick the sheet, map it, run it.

Start 14-day free trial

No credit card. 14 days. Cancel in one click.