Skip to main content

Prerequisites

Before configuring read-only columns, ensure you have:
  • A working sheet configuration YAML file
  • Access to the project’s sheet configuration in Administration > Nextedy Powersheet
  • Familiarity with the column properties available in Powersheet
Formatters style only — they do not enforceA read-only formatter applies visual styling only (for example, a grey background). It does not prevent editing on its own. To actually enforce that a column cannot be changed, set isReadOnly: true on the column (UI-level) and/or updatable: false on the property in the data model (server-level). Use the formatter alongside these to signal read-only status to users — not in place of them.
1

Set isReadOnly on a Column

Add isReadOnly: true to any column definition in your sheet configuration to disable editing for that column:
The isReadOnly property accepts a boolean value and defaults to false. When set to true, cells in that column cannot be modified regardless of user permissions or formatter rules.
Document-level overrideThe isReadOnly value on a column can be overwritten by the user’s permission level or the global configuration of the document. If a user has read-only access to the entire document, all columns become read-only regardless of individual column settings.
2

Add Visual Feedback with a Read-Only Formatter

Setting isReadOnly: true prevents editing but does not change the column’s appearance. To add a visual cue so users can immediately see which columns are non-editable, combine the property with a formatter:
This approach provides both functional protection (the cell cannot be edited) and a visual indicator (the grey background signals read-only status to users).
grey100 is one of Powersheet’s built-in color tokens. For the full palette of valid token names (each color family runs from 100 lightest to 700 darkest) and the predefined style names, see the Styles reference.
Use a shared formatter for consistencyDefine a single readOnlyFormat formatter and reference it across all read-only columns. This keeps your configuration DRY and ensures a uniform appearance throughout the sheet.
3

Use Conditional Read-Only with Formatters

For columns that should be read-only only under certain conditions, use a formatter with a conditional expression instead of a static isReadOnly flag:
In this example, the title column becomes visually styled as read-only when the work item’s Status is Approved. The formatter expression has access to the context object, which provides:
  • context.entity — the current entity (row data)
  • context.value — the current cell value
  • context.document — the document data
Property names are case-sensitiveIn client-side expressions, context.entity.<Property> must match the property name as defined in your data model exactly, including case. The examples here use Status because that is the property name in the demo model; substitute your own model’s casing. This client-side accessor is distinct from the server-side Velocity form $item.status.id used in server-rendered templates — do not mix the two notations.
Verify in applicationConditional formatter expressions apply visual styling. To fully enforce editing restrictions based on status, combine formatters with data model constraints or document-level permissions.

How Read-Only Resolution Works

Powersheet evaluates multiple conditions to determine whether a column is editable. A column becomes read-only if any of these conditions are true:
diagram
  1. Configuration flagisReadOnly: true is set on the column in the sheet configuration YAML
  2. Historical revision — The user is viewing a past revision of the document (all columns automatically become read-only)
  3. User permission — The document access control grants the user only viewer (not editor) access
  4. Computed column — The column declares a value expression, so its content comes from the expression rather than from input
Troubleshooting: a column is read-only when you did not expect itBecause the conditions above are combined with OR, any single one makes the column read-only. Work backwards from the symptom:
  • Every column in the document is read-only — check conditions 2 and 3: you are most likely viewing a past revision, or your access to the document is viewer-only.
  • One specific column is always read-only — check condition 1 (isReadOnly: true on that column), condition 4 (a value expression on that column), and the data model (updatable: false, or a serverRender annotation, on the underlying property).
  • A formatter-styled column looks locked but still edits — that is expected: a formatter only styles, it does not enforce (see the warning at the top of this page).
Computed columns are read-only by definitionA column with a value expression takes its content from that expression, so declaring isReadOnly: true on it is redundant. A column whose binding key is $-prefixed goes further: it is unbound, stores nothing, and is forced read-only — not only in the editing UI but on every write path, so paste and fill cannot change it either. See Add a Computed Column.
System-managed and server-rendered columns are always read-onlyCertain columns such as outlineNumber are inherently managed by Polarion and should always have isReadOnly: true. In addition — this is the canonical rule referenced from the server-rendering pages — any property that defines a serverRender annotation, or that has updatable: false in the data model, is automatically read-only regardless of the sheet configuration. For server-rendered properties this override cannot be disabled: even updatable: true is ignored, because the value is always recomputed from the template.

Complete Configuration Example

Here is a full sheet configuration excerpt showing multiple read-only patterns in a requirements traceability context:
In this example:
  • outlineNumber and id are always read-only with grey background styling
  • title becomes visually styled when the item status is Approved
  • The expanded systemRequirement.id column is read-only since IDs should not be user-editable
  • systemRequirement.title remains editable (no isReadOnly flag)

Property-Level Permissions in the Data Model

You can also control editability at the data model level using the readable and updatable properties on entity type definitions:
When updatable is false, the column becomes read-only for that property regardless of the sheet configuration isReadOnly setting.
updatable defaults to false for every property, ordinary ones included — a property is read-only unless you explicitly set updatable: true. A property with a serverRender annotation is read-only too, but for a different reason: Powersheet forces its effective value to false and ignores any updatable: true you set (see the Velocity Templates reference) — unlike an ordinary property, an explicit override can never make it editable.
Combine approaches for defense in depthUse isReadOnly in the sheet configuration for UI-level protection and updatable: false in the data model for server-level enforcement. This ensures data integrity even if a configuration is accidentally changed.

Verification

After saving your sheet configuration changes, reload the Powersheet document in Polarion:
  1. Open the sheet and click on a cell in the read-only column — you should see that the cell does not enter edit mode and the selection marquee shows a read-only indicator
  2. If you applied a formatter, verify the grey background (or your custom style) appears on the read-only cells
  3. Try pasting into a read-only column — the paste operation should be blocked
  4. Confirm that editable columns next to the read-only ones still accept input normally
You should now see that the configured columns are protected from editing, with visual styling distinguishing them from editable columns.

See Also

Last modified on August 31, 2026