TroubleshootingReviewed 2026-09-29

Import is greyed out or nothing was written: rows in the sheet failed the check

Every Excel import is checked row by row before anything is saved, and nothing at all is written while even one row fails; Import stays greyed out until the listed rows are fixed in the sheet and the file is chosen again.

Messages this explains

  • “Choose a filled-in sheet first”
  • “Fix the N rows listed below, then choose the file again”
  • “This sheet has no rows to add or update”
  • “Nothing has been written. Fix the rows below in your sheet and choose the file again.”
  • “Checked, nothing written yet. Use Import to apply it.”
  • “Pick one of the values listed on the Lists sheet.”
  • “<field>: required”
  • “<field>: required, one of <values>”
  • “<field>: "<v>" is not one of <values>”
  • “<field>: no <thing> called "<v>" (known: <names>)”
  • “category: say Landowner or PAP Tenant”
  • “category: "<v>" is not a category”
  • “category: <X> belongs under a society, not under a project”
  • “category: <X> belongs under a project, not under a society”
  • “tenant_id: no allottee with this id here (was the sheet exported from another society or project?)”
  • “membership_no: "<no>" is already used here”
  • “membership_no: "<no>" also appears on row <n>”
  • “first_name: required”
  • “phone: required, 5 to 20 characters”
  • “<field>: "<v>" is not a number”
  • “<field>: "<v>" is not a whole number”
  • “<field>: <v> is out of range”
  • “<field>: "<v>" is not a date (use YYYY-MM-DD)”
  • “<field>: "<v>" is not Yes or No”
  • “unit_id: no unit with this id in this project”
  • “unit_number: the same unit appears on row <n>”
  • “designation: unit <n> is <status>; release it before changing what it is for”
  • “parking_slot_id: no parking slot with this id in this project”
  • “parking_slot_number: the same parking slot appears on row <n>”
  • “parking_type: required for a new parking slot”

Import is greyed out or nothing was written: rows in the sheet failed the check

You chose a filled-in sheet in an Import dialog, but the Import button stays greyed out and the dialog lists rows with errors. None of the sheet has been saved.

What you see

In any Excel import dialog ("Import units", "Import parking slots", "Import construction stages", "Import unit pricing", "Import members" or "Import landowners & PAP tenants"):

  • The counts: "N to add", "N to update", "N skipped" and "N with errors".
  • An amber alert "Nothing has been written. Fix the rows below in your sheet and choose the file again."
  • A table of rows, each "Row <n>" with the row's name and, in red, what is wrong with it. Skipped rows carry a grey note: "Example row from the template" or "Empty row".
  • Import greyed out, with the reason on hover:
    • "Choose a filled-in sheet first" before a file is chosen;
    • "Fix the N rows listed below, then choose the file again" (or "Fix the 1 row listed below…") while rows fail;
    • "This sheet has no rows to add or update" when every row was skipped, or while the check is still running.
  • When every row passes: the blue alert "Checked, nothing written yet. Use Import to apply it." and the button Import N rows.

The row errors name the column first, then the problem. The ones you will meet most:

Message Meaning
"<field>: required" / "<field>: required, one of <values>" The cell is blank but must be filled.
"<field>: "<v>" is not one of <values>" / "<field>: no <thing> called "<v>" (known: …)" The value is not one the app knows, for example a tower, parking type, unit type or charge component spelt differently.
"<field>: "<v>" is not a number" / "… is not a whole number" / "<field>: <v> is out of range" A number cell holds text, a decimal where a whole number is needed, or a number outside the allowed range.
"<field>: "<v>" is not a date (use YYYY-MM-DD)" Dates must be real Excel dates or written as 2026-10-05.
"<field>: "<v>" is not Yes or No" Yes / No columns take Yes or No.
"unit_number: the same unit appears on row <n>" / "parking_slot_number: the same parking slot appears on row <n>" / "membership_no: "<no>" also appears on row <n>" The same record is listed twice in the sheet.
"unit_id: no unit with this id in this project" / "parking_slot_id: no parking slot with this id in this project" / "tenant_id: no allottee with this id here (was the sheet exported from another society or project?)" The id column points at a record that is not on this project or society, usually because the sheet was exported from another one.
"category: say Landowner or PAP Tenant" / "category: "<v>" is not a category" / "category: <X> belongs under a society, not under a project" (or the reverse) On a project's allottee sheet every row must say Landowner or PAP Tenant; society members belong on the society's own sheet. The "belongs under" message names the sheet you are importing into, not where the row belongs: a Society Member row on a project's sheet reads "belongs under a project, not under a society", and a Landowner row on a society's sheet reads "belongs under a society, not under a project".
"first_name: required" / "phone: required, 5 to 20 characters" An allottee row needs a first name and a phone number.
"membership_no: "<no>" is already used here" Another member of the society already has that membership number.
"designation: unit <n> is <status>; release it before changing what it is for" A unit that is reserved for tenants, on hold for a buyer, allotted, booked or sold cannot change designation.
"parking_type: required for a new parking slot" New parking slots need a parking type.

Inside Excel itself, typing a value that is not in a dropdown column's list is refused with "Pick one of the values listed on the Lists sheet." (titled "<column>: not an allowed value").

Why it happens

Imports are all or nothing. When you choose a file, the app first checks every row and reports what it would add, update or skip, without saving anything. The Import button applies the sheet in a single step only when no row fails. If one row in three hundred is wrong, none of the three hundred is written, so the data is never left half-imported and you can simply fix the sheet and try again.

The checks are the same rules the screens apply one record at a time: required fields, numbers and dates in the right form, names that match what already exists on the project (towers, parking areas and types, unit types, pricing plans, charge components, construction stages), and records that are not listed twice. Rows are matched to existing records by their id column (from an export) or by their natural key (tower, floor and unit number; parking area and parking slot number; membership number), and updated rather than added when they match.

Row numbers are the spreadsheet's own row numbers, so "Row 14" is row 14 in Excel (row 1 is the header).

How to fix it

  1. Read the listed rows in the dialog; each red line names the column and the problem.
  2. Fix them in your sheet in Excel. Pick closed columns from their dropdown (the values live on the Lists sheet); use the names exactly as the app shows them; write dates as real dates or YYYY-MM-DD; remove duplicate rows.
  3. If ids point at another project or society, export the list from this one (Export) and copy your changes into it, or clear the id column so the rows are matched by their key or added as new.
  4. If a name is unknown (a tower, parking type, unit type or charge component), either correct the spelling to one listed under "known", or add the missing item on its own screen first (for example the charge component under Masters > Charge Components, or the unit type under Settings > Lookups), then download a fresh template so its dropdowns include it.
  5. Save the sheet and click Choose another file, then pick it again. The check reruns on the new file.
  6. When the blue "Checked, nothing written yet. Use Import to apply it." appears, click Import N rows. You see "Imported into <name>." and a toast "<n> added, <n> updated.", and Cancel becomes Done.

Importing needs the Create and Edit permissions on the tab's module: Towers, Floors & Units for units, Parking for parking slots, Construction Stages for stages, Pricing Plans for unit pricing, and Tenants for members, landowners and PAP tenants. Without both, the Import button is not shown at all.

Related

  • Importing and exporting Excel sheetsScreen

    Download a project's units, parking slots, construction stages or unit pricing as an Excel sheet, fill in the template, check it row by row and import it in one go.

  • Greyed-out buttonsScreen

    Why a button is grey and can't be clicked, where to read the reason, and why some buttons are missing altogether.

  • SocietyScreen

    One housing society's details and its member roll: add members one by one or from an Excel sheet, record their existing flat, consent and co-owners, and export the roll.

  • Society & TenantsScreen

    On a redevelopment project, link the society being redeveloped, keep its members and the project's landowners and PAP tenants, and give each of them an offer that allots new units and sets the benefits the developer pays.

  • StructureScreen

    Build and maintain a project's towers (wings), floors and units, generate them in bulk, and see every unit's status and designation at a glance.

  • ParkingScreen

    Set up the project's parking areas (basement, podium, stilt) and their numbered parking slots, see who holds each parking slot, and allocate parking slots to society members.

  • Unit PricingScreen

    Keep the project's pricing plans, one per unit type: the sale charges by charge group with GST per line, how each charge group is collected, and a preview of the price and payment schedule on a real unit.

  • Construction StagesScreen

    Plan the project's construction stages (plinth, slabs, possession…) with their shares and dates, record commencement and completion, and keep the certificates and photos for each stage.

  • Excel sheets: check first, then applyConcept

    Units, parking slots, construction stages, unit pricing, benefit plans, society members and allottees can be exported to and imported from Excel; every sheet is checked row by row first, and nothing is written while any row fails.

  • Import and export units with ExcelHow-to

    Download a project's units as an Excel sheet or start from the template, fill in towers, floors and units in bulk, let the app check every row, and import them in one go; missing towers and floors are created for you.

  • Import society members from ExcelHow-to

    Fill the members template (or an export of the roll) in Excel and bring it back: the sheet is checked row by row first, and nothing is written until every row passes.

  • Record landowners and PAP tenantsHow-to

    Record the project's own allottees, the landowners who receive units for their land and the project-affected (PAP) tenants rehabilitated in PAP units, with their co-owners, and open an allottee's page to complete their record.

  • The Excel file cannot be read: wrong format, missing columns or no rowsTroubleshooting

    An import reads only an .xlsx workbook (or a CSV from an older template) laid out like the template: the Data sheet with the template's header row and at least one row under it. Any other file, a renamed or missing column, or an empty sheet is refused before a single row is checked.