Excel requirements import
Most teams keep requirements in a spreadsheet. This moves them into a live model without losing your IDs, your structure, or whatever your team put in column K three years ago.
The problem this solves
Migration is the real switching cost. Most tool trials die at import: IDs get renumbered, hierarchy flattens, custom columns disappear, and nobody trusts the result enough to drop the spreadsheet. So the spreadsheet stays.
How it works
Import every row of your spreadsheet as a requirement, with your IDs kept exactly.
The prompt
You are importing requirements from a spreadsheet into the Dalus model [model name]. The user's IDs, hierarchy and custom columns survive the import intact. You write to the model only after the user approves the mapping and the dry run. INPUT: an uploaded .xlsx, .xlsm, .csv or .tsv. If none is present, stop and ask for it. If the workbook has several sheets, list them with row counts and a one-line description of what each appears to hold, and ask which to import; never assume the first sheet. INSPECT THE SHEET before anything else, and never assume a clean table: - Find the real header row. It is often not row 1: skip title blocks, logos, revision tables and blank rows above it. - Detect merged cells, multi-row headers, frozen panes, filters and hidden rows or columns. Hidden rows are imported unless the user says otherwise, and are reported as hidden. - Detect the ID column and its format, including zero-padded numbers, prefixes, and any separator implying hierarchy (REQ-1.2.3, 3.4.1). - Detect the hierarchy mechanism: an outline-numbered ID, a parent-ID column, indentation in the text column, Excel grouping levels, or heading rows with no statement. Say which one you found. - Detect a status, priority, verification, allocation or rationale column by content rather than by header wording alone. - Detect rows that are section headings rather than requirements, and rows that continue the row above (wrapped text split across rows). - Detect duplicate IDs, blank IDs, blank statements, and statements that look truncated. MAPPING PROPOSAL, always, before writing anything. Report: - the header row and column letters you will use; - for every column in the sheet: the Dalus target it maps to, or "keep as attribute [name]", or "not imported" with the reason. Every column is accounted for explicitly. Never drop a column silently: anything you cannot map to a native field is preserved as a named attribute on the requirement, including whatever is in column K. - the ID strategy: IDs are preserved exactly as written, including prefixes and padding. If Dalus assigns its own identifiers, the original is preserved as an attribute so the sheet and the model can always be reconciled. - the hierarchy you inferred, shown as an indented tree of the first 20 rows so the user can see it is right; - row counts reconciled: total rows = requirements to create + heading rows + continuation rows + blank/skipped rows. State the arithmetic. - data problems found: duplicate IDs, blank statements, suspected truncation, inconsistent ID formats, orphan parent references, units or values embedded in text that will not be parsed. - a DRY RUN: the exact first five and last five requirements as they will be created, with every field populated, so the user can see the real result before committing. Then ask exactly ONE question combining: is the mapping correct, and should existing requirements with matching IDs be updated, skipped, or duplicated. If the user replies "fast", proceed with the mapping as proposed and skip existing IDs. IMPORT RULES: - Statements are imported verbatim. Never reword, expand, split, or clean up a requirement, even one that is badly written. - Never invent an ID, a parent, a status or a value. A blank cell stays blank. - Preserve the sheet's order within each hierarchy level. - Heading rows become the structure they represent, not requirements with no statement. - Continuation rows are joined to the requirement they belong to, and every join is reported. - Attributes carry the source column name so the user recognizes them. - If the sheet has a verification column, map its values to verification entries where they clearly correspond to a method; where they do not, keep the original text as an attribute rather than guessing a method. - Import in batches, reporting progress. If a batch fails, stop, report what was created and what was not, and do not retry blindly. AFTER THE IMPORT, report: - created, updated, skipped and failed counts, reconciled against the source row count; - the hierarchy as built, top two levels; - every requirement whose import was lossy or ambiguous, with what was lost; - a quality read on what was imported: statements that are not verifiable, compound requirements, missing tolerances, vague terms. Report these as findings only. Never fix them as part of an import, and offer (do not execute) a follow-up pass to clean them up. - what is now missing to make this a usable model: allocation, verification, parent traceability, interfaces. ROLLBACK: before writing, tell the user how to undo the import. If the model supports branching or version control, propose importing on a branch so the main model is untouched until they accept it. If it does not, say plainly that the import cannot be automatically undone and confirm before proceeding. SAFETY: this workflow writes to the model. Nothing is created before the mapping proposal and dry run are approved. If at any point the sheet is too irregular to map with confidence, say so and ask rather than guessing your way through 400 rows.
Replace the [bracketed] placeholders with your model and project names.
What you get
Upload the workbook directly. Excel and CSV both work, as do exports from Jama, Valispace, DOORS, and Polarion when you export to a tabular format first.
Common questions
More Excel workflows
Design FMEA from architecture
Draft a Design FMEA from your architecture and export it to Excel.
Bill of materials from the architecture
An engineering BOM out of the part hierarchy, with every empty field counted rather than filled.
Budget and margin report
Any resource rolled up the hierarchy, with the margin stated against how real the data underneath is.