User Guide
13.2 · Import / Export

CSV Export and Import

CSV is the plain-text option for data exchange with systems that don't understand Excel workbooks.

Exporting

MenuMethod
Direct Costs → Export CSVExportDirectCostsToCsvAsync
Overheads → Export CSVExportOverheadsToCsvAsync
Resources → Export CSVExportResourcesToCsvAsync
Carbon → Export CSVExportCarbonEmissionsToCsvAsync

CsvExportOptions

OptionDefaultPurpose
Delimiter,Use \t for TSV, ; for European locales.
IncludeHeaderstrueColumn names on the first row.
DateFormatyyyy-MM-ddISO by default.
DecimalFormat0.00Controls precision.
QuoteAllFieldsfalseSafer for strings with commas.

What's Included

CSV is one flat table per export. Custom columns are flattened into additional columns automatically. Hierarchy is preserved via IndentLevel and ParentLineNumber columns.

Importing

MenuMethod
Direct Costs → Import CSVImportDirectCostsFromCsvAsync
Resources → Import CSVImportResourcesFromCsvAsync

Progress callbacks via IProgress<CsvImportProgress> — shown as a progress bar during large imports.

CsvImportOptions

OptionPurpose
DelimiterMatch the source file.
HasHeadersSkip the first row if true.
DateFormatParser hint.
ConflictResolutionSkip / Overwrite / Rename / Fail.
ValidateBeforeImportDry-run first, return errors without changes.

Column Matching

The importer matches columns by header name. Unmapped columns are ignored. Required columns for direct cost import:

  • Item
  • Quantity (optional — defaults to 0)
  • Unit
  • Rate or Resource (one of them)

If both Rate and Resource are supplied, Resource wins and the Rate is updated to match.

Validation

ValidateBeforeImport = true runs ImportResult with:

  • Errors (line number, field, message).
  • Warnings (non-fatal issues).
  • Counts of items that would be created / skipped / failed.

Fix issues in the source file, then re-run with validation off.

Typical Workflow — Annual Rate Update

  1. Export Resources to CSV.
  2. Receive updated prices from suppliers / estimating manager.
  3. Merge into the CSV (Excel is fine for this).
  4. Re-import with ConflictResolution = Overwrite.
  5. Cascade applies — every item re-prices.

Limitations

  • CSV loses formulas (exports values only).
  • CSV loses formatting (bold / colours).
  • Carbon export is a separate file (no multi-table CSV).