Skip to main content

Creating Spreadsheet Forms

This page covers how to create and configure spreadsheet-style forms — from initial setup to publishing.

Prerequisites

Before creating a Spreadsheet Form, ensure you have:

  • Administrator or form creator permissions
  • A clear list of cells that users should fill in
  • Field names and labels for each input cell
  • Dropdown option lists, if the form needs controlled choices
  • Any formulas or calculations simplified enough to test inside OSPROV
note

If you are converting an existing Excel file, use it as a visual reference. The current builder does not import .xlsx files directly.

Step 1: Basic Form Setup

  1. Navigate to Forms in the sidebar menu
  2. Click Create New Form
  3. Fill in the form details:
FieldRequiredDescription
NameYesDescriptive name, such as "Travel Claim Form"
PrefixYesPrefix used for submission IDs, such as CLM-
ThemeNoVisual theme for the form
TypeYesSelect Spreadsheet Form from the dropdown

After selecting Spreadsheet Form, the spreadsheet launchpad appears. Click Open Builder to open the full-screen builder.

tip

The Open Builder button is disabled until the required form metadata is complete. The launchpad message explains which value is missing.

Basic Build Workflow

  1. Lay out the spreadsheet: Type headings, instructions, formulas, and static labels into the grid.
  2. Create sheets if needed: Use the sheet controls to add, rename, and delete sheets.
  3. Select a cell for each form input: Click the cell that the user should fill.
  4. Create a named cell binding: Enter the field name, label, type, and required setting.
  5. Apply the binding: Click Apply to save the selected cell as a form field.
  6. Add dropdown options if the field type is Dropdown.
  7. Apply formatting: Use cell formats and the allowed native toolbar items to make the form readable.
  8. Review named cells: Use Jump to field to confirm every input cell is bound correctly.
  9. Save the form: Click Save as Draft, Save, or Create New Version, depending on the form status.
  10. Publish the form from the Forms list when it is ready for workflow use.

Step 2: Lay Out the Spreadsheet

New spreadsheet forms start with:

  • One sheet named Sheet1
  • A 50 by 50 grid
  • Default text columns
  • Left-aligned cells
  • A scrollable grid area

Additional sheets also start as 50 by 50 grids.

Use the grid to type headings, labels, instructions, formulas, and static values. You can also add sheets, rename sheets, resize rows and columns, and use supported cell formatting.

Step 3: Bind Input Cells

In a standard OSPROV form, every input component is already a form field. When you add a Text Field, Number, Date, Select, or Checkbox component, that component carries its own field key, label, field type, validation rules, and storage behavior. OSPROV knows it is an input because the component itself is the field.

A spreadsheet is different. Most cells are just grid cells. A cell might be a title, instruction, table header, formula, calculated total, visual spacing, or user input. OSPROV cannot safely assume that every edited spreadsheet cell should become structured submission data.

That is why Spreadsheet Forms use cell bindings, also called named cells. A cell becomes an OSPROV form field only after you bind it as a named cell.

A cell binding tells OSPROV:

  • Which exact cell is a field, such as Sheet1!B3
  • What field name to store, such as requested_amount
  • What label to show in validation messages and submission columns
  • What field type to use: Text, Number, Date, or Dropdown
  • Whether the cell is required
  • Which options are allowed, if the field type is Dropdown

Without a binding, OSPROV still saves the cell in the full visual spreadsheet snapshot, but it does not treat that cell as structured form data. This separation keeps layout cells, instruction cells, formula cells, and input cells from being mixed together.

Named Cells vs Standard Form Fields

Standard FormSpreadsheet Form
A dragged component is automatically a fieldA cell becomes a field only after you apply a binding
The field key belongs to the componentThe field name belongs to the selected cell binding
The label appears on the componentThe label is metadata for validation messages and reporting
The field type is part of the component configurationThe field type is set in the binding toolbar
Validation applies to the componentValidation applies only to bound cells
Submission data is built from input componentsSubmission data is extracted from bound cells only
Layout components are separate from input componentsStatic layout cells and input cells can live in the same grid

Example

CellPurposeBinding
A1Title: Travel Claim FormDo not bind
A3Label: Requested AmountUsually do not bind
B3User enters amountBind as requested_amount, label Requested Amount, type Number
B4Formula: =B3*0.08Bind only if the calculated value is needed as named submission data

Cell bindings are not the same as Excel named ranges. They are OSPROV metadata for extracting and validating one spreadsheet cell as a form field.

Binding Toolbar

Select a cell, then configure its binding in the toolbar.

ControlDescription
field_nameInternal field name used in submissions, reports, queries, and integrations
LabelUser-facing label used in validation messages and column headings
TypeField type: Text, Number, Date, or Dropdown
RequiredRequires the submitter to fill this cell before final submission
ApplySaves or updates the binding for the selected cell
ClearRemoves the binding from the selected cell without clearing the cell value
Dropdown optionsAppears only for Dropdown fields; enter one option per line

Field names must be unique across all sheets in the same spreadsheet form. Field names are normalized to lowercase letters, numbers, and underscores.

Field Types

Text

Best for: Names, descriptions, references, remarks, or other free-form values.

Validation:

  • Required check, if enabled
  • Export safety for values beginning with =, +, or @

Number

Best for: Amounts, quantities, scores, and numeric calculations.

Validation:

  • Required check, if enabled
  • Must be numeric after removing commas
  • Exports as a numeric value
  • Works best with Number, Currency, or Percentage display formats

Date

Best for: Dates selected by the user.

Validation:

  • Required check, if enabled
  • Must parse as a valid date
  • Displays as DD/MM/YYYY
  • Stores canonical values as YYYY-MM-DD
  • Exports as an Excel date

Best for: Controlled choices such as department, status, category, or yes/no selections.

Validation:

  • Required check, if enabled
  • Must match one of the configured dropdown options exactly
  • Options are defined one per line in the builder
note

Checkbox is not currently exposed as a Spreadsheet Form field type. Use Dropdown with options such as Yes and No when a single-cell choice is needed.

Formatting Cells

OSPROV supports two kinds of formatting:

  • Native spreadsheet style — fill color, text color, font size, bold, alignment, supported borders, merged cells, and related grid styles
  • OSPROV display format — General, Text, Number, Currency (RM), Percentage, and Date
FormatDescription
GeneralDisplays the raw cell value without special formatting
TextTreats the value as text for display and export
NumberDisplays and exports compatible values as numbers
Currency (RM)Displays numeric values with RM formatting and exports compatible Excel currency values
Percentage (%)Displays numeric values as percentages
Date (DD/MM/YYYY)Displays compatible date values as DD/MM/YYYY

Formatting does not change the canonical value stored for a bound field. For example, a currency cell may display RM 1,234.00, but OSPROV stores and validates the underlying number.

Working with Sheets

ControlDescription
Sheet name inputRenames the active sheet
+Adds a new sheet
xDeletes the active sheet; disabled when there is only one sheet
Sheet tabsSwitch between sheets

Each sheet has its own grid layout and bound fields. The same cell address can exist on multiple sheets because OSPROV stores the sheet context with the field.

Supported Grid Actions

The builder supports:

  • Selecting cells and ranges
  • Typing static text and values
  • Typing formulas where the spreadsheet engine supports them
  • Copying and pasting spreadsheet data
  • Resizing rows and columns
  • Inserting and deleting rows and columns
  • Merging cells where the grid UI provides merge behavior
  • Scrolling large sheets horizontally and vertically
caution

If you insert or delete rows or columns after creating bindings, review all named cells before saving. Cell bindings may shift with the layout.

Saving and Publishing

  1. Build the spreadsheet layout
  2. Bind each input cell that should become submission data
  3. Add dropdown options, if needed
  4. Apply formatting for readability
  5. Use Jump to field to review every named cell
  6. Click Save as Draft, Save, or Create New Version, depending on the form status
  7. Publish the form from the Forms list when it is ready for workflow use

Pre-Publish Checklist

  • Form name and prefix are complete
  • Spreadsheet layout is readable
  • Every input cell has the correct binding
  • Field names are clear and unique
  • Labels are understandable to users
  • Required fields are marked only where needed
  • Dropdown options are complete
  • Date fields use the Date type
  • Number fields use the Number type
  • Formulas are tested in OSPROV, not only in Excel
  • Named cells are reviewed after row or column changes
  • A test workflow submission has been completed
  • XLSX export has been checked for complex forms