Documentation

Import a Workbook


Workbook import handles multi-sheet .xlsx files. Each sheet can be a different data table — or one sheet can be collar data and the others interval data — and the whole thing runs through one wizard.

This is the right mode when geologists or contractors send you a single Excel workbook with everything in it. Common formats:

  • One sheet per drill hole, each with that hole’s lithology
  • One “Collars” sheet plus one sheet each for Lithology, Assays, Alteration, etc.
  • A delivery from a lab where each sheet is a different sample batch

For the wizard’s general behaviour, see Import Overview.

Prepare the file

Workbook imports work best when:

  • Each sheet has consistent headers in row 1
  • Sheet names are meaningful (the wizard uses them when guessing what type of sheet it is)
  • A Hole ID column appears in any interval sheet that mixes multiple holes
  • Empty sheets and notes/instruction sheets can be skipped during the wizard

There’s no hard limit on the number of sheets, but very large workbooks parse slowly in the browser.

Run the import

  1. Step 1 — Upload File. Drop the .xlsx file.

  2. Step 2 — Import Type. Choose Workbook.

  3. Step 3 — Sheet routing. The wizard lists every sheet and tries to guess what each is:

    • Collar — looks like a collar/header sheet (one row per hole, no depth columns)
    • Domain (table name) — looks like interval data; the wizard tries to match the sheet name and headers to an existing data table
    • Skip — empty or unrecognised sheets default to skipped

    For each sheet, you can override the guess:

    • Set the sheet to Collar, Domain, or Skip
    • For Domain sheets, pick the target data table (or create a new one)
  4. Step 4 — Map columns per sheet. For each sheet you didn’t skip, map its source columns to destination columns. The auto-detection runs per-sheet using the same heuristics as other modes (Hole ID and depth aliases).

  5. Step 5 — Import. Click Import. Sheets process one after another. The summary lists imported, skipped, and error rows broken down per sheet.

What gets created

  • Collar sheets create new drillholes (just like Import Drillholes).
  • Domain sheets add interval rows to existing drillholes via Hole ID matching (just like Bulk Domain in Import Interval Data).
  • Skipped sheets are left alone.

Order matters: collar sheets are processed first so that any new drillholes they create exist by the time a domain sheet tries to reference them by name.

Auto-matching sheets to tables

For each domain sheet, the wizard:

  1. Looks at the sheet name (Lithology matches a data table called Lithology)
  2. If no name match, looks at the column headers and finds the data table with the most overlapping column names
  3. If still no match, marks the sheet as needing manual assignment

You can override any guess. For sheets you don’t want to import, set them to Skip.

Tips

  • Have your tables created first. Workbook import can create tables on the fly, but it’s tidier to define your schema in Data Tables before the import — table names and column names are then guaranteed to match.
  • Trim the workbook. If a workbook has 30 sheets and you only need 5, delete the others before uploading. Less to step through, less to skip.
  • Test with a small workbook first. Workbook imports are powerful but have more moving parts than other modes. A test run on a 10-row, 3-sheet copy catches mapping mistakes before they sprawl across the full file.
  • Re-imports duplicate rows. Workbook import is a bulk insert, like the other modes. See Import Overview.

Common issues

A sheet was auto-matched to the wrong table. Override the guess in step 3.

“Many rows rejected” for a sheet that should match. Hole ID mismatch — see Import Interval Data.

The collar sheet ran but the domain sheets failed because holes didn’t exist. The wizard processes collar before domain, so this shouldn’t happen normally. If it does, it usually means the Hole ID column in the domain sheet uses different formatting than the collar sheet (DDH-001 vs DDH001). Fix in the source file and re-run.