Import SOQ from Excel / CSV
You can bulk-import your Schedule of Quantities (SOQ) — estimated scope and prices — into QSME from an Excel workbook (.xlsx) or a CSV file. This is useful when you already have a spreadsheet of tender pockets, jobs, materials and labour.
Anything you export from QSME imports straight back in. Export the schedule as Excel or CSV, edit it wherever you like, and bring the same file back through Import — no reformatting, no re-typing the headers.
SOQ = estimated prices (this screen/import). BOQ = actual trade prices submitted by contractors in response to tenders.
File format
- File type: `.xlsx` (Excel workbook) or `.csv`. Old `.xls` files aren't supported — open them in Excel and use Save As → Excel Workbook (.xlsx).
- Header row: The row naming the columns. It doesn't have to be the very first row — a title line or a blank row above it is fine.
- Data rows: One row per material line or labour line. Tender pockets and jobs are repeated on each row (or named once and left blank down the block — merged-cell style works too).
Columns
Column names are matched however they're written — spacing, punctuation and capitals don't matter, and each column accepts several common wordings.
| Column | Also accepted as | Required | Description |
|---|---|---|---|
| Tender Pocket | Category, Section, Trade, Package, Element | No* | Name of the tender pocket. If there is no pocket column at all, everything is imported into one pocket named after the file. |
| Job | Work Item, Task, Activity | No | Job title within that pocket. Defaults to the pocket name. |
| Type | Item Type, Kind | No | Material or Labor. If there's no Type column, a line measured in hours or days is imported as labour and everything else as a material. |
| Item | Description, Item Name, Particulars | Yes | The line description. |
| Unit | UOM, Unit of Measure | No | Unit of measure (m², each, hrs…). |
| Quantity | Qty | No | Numeric quantity. For labour, total hours. |
| Unit Rate | Rate, Unit Price, Price, Cost | No | Price per unit, or hourly rate for labour. |
| Total | Amount, Total Cost, Line Total | No | Line total. If Quantity × Rate is blank, the total is used to work the rate out. |
| Notes | Comments, Remarks | No | Optional notes; also used as the material description. |
Money is read the way spreadsheets write it: $1,250.00, (120) for a negative, and semicolon-separated CSVs (what Excel produces in some regions) all work.
Example CSV
Tender Pocket,Job,Type,Item,Unit,Quantity,Unit Rate,Total,Notes
Concrete,Footings,Material,Concrete 25MPa,m³,10,250,2500,Grade 25
Concrete,Footings,Material,Reinforcement,t,2.5,1200,3000,
Concrete,Footings,Labor,Pour & finish,hrs,40,45,1800,
Electrical,Installation,Material,Cable 2.5mm,m,100,3.50,350,
Electrical,Installation,Labor,Termination,hrs,8,55,440,This creates:
- Tender pocket: Concrete → Job: Footings → 2 materials + 1 labour
- Tender pocket: Electrical → Job: Installation → 1 material + 1 labour
Everything imports as draft pockets, so you can review before activating them.
How to get the correct format
- Open the SOQ for a project and use Export → Excel (.xlsx) or CSV.
- Edit that file in Excel or any spreadsheet.
- Use Import and pick the file. That's it — the file you exported is a file the importer reads.
Save a template instead
If you're re-using a schedule rather than editing one, you don't need files at all. Templates → My templates → Save this schedule as a template keeps it on your account, and Insert drops it into any project you're on. Templates are private to you, and saving under a name you've used before replaces that template rather than making a second copy.
Tips
- Unpriced lines are fine. A line with quantity 0 and rate 0 is a normal placeholder and imports as one.
- Subtotal and GRAND TOTAL rows are skipped so importing an export doesn't double the money.
- Quotes: In CSV, wrap a value containing commas or line breaks in double quotes; a literal quote inside a field is written as
"". - Encoding: Save CSV as UTF-8 so special characters display correctly.
- Duplicate names: Rows sharing a pocket + job name are grouped into that one job.
- Multiple sheets: In an .xlsx, the sheet named SOQ/BOQ is used if there is one; otherwise the first sheet with rows.