Community · Help

Sheetward User Guide

Turn an Excel or OpenDocument workbook (or Google Sheet) into a multi-user web app — forms, validation, lookups, import/export and more.

Structuring your workbookStart here

Your workbook is the App Specification. Each sheet plays one role — a form, a dropdown list, a set of rules — and the sheet's name prefix tells Sheetward which. Start each tab name with one of these:

Write the workbook in English. English is the app's base language, so field labels on Form_ sheets, section markers and rule text are always English — never translated. Other languages come afterwards, and live in only two places: the Translation_ sheet (field labels and your validation messages) and the language columns of your List_ sheets (dropdown values). That's what lets one workbook serve every language your app offers.
Sheet name starts withWhat it becomes
Form_<Name>A data-entry form — an expense claim, a purchase order, a timesheet. Each Form_ sheet becomes its own page in the app.
List_ / Master_ / LOV_A lookup table (master data) that fills your dropdown fields — cost centers, departments, suppliers.
Rules_ / Rule_ / Validation_Checks on what people enter — required fields, minimums and maximums, valid formats (see Rules below).
Formula_ / Formulas_ / Logic_Fields the app calculates for you, live: arithmetic ("hotel + meals"), line-item totals ("sum of hotel from LINE ITEMS" — count and average work too), and IF logic for yes/no results. Line formulas may also use HEADER fields. See Formulas below.
Info_Free-text notes about the app — purpose, instructions, contacts — shown at the top of the app's Help guide.
Translation_Your translations of the app's own field labels, dropdown values and validation messages, per language.
Report_ / Analytics_A dashboard — KPI tiles, charts and a pivot table, built live from the app's records (see Dashboards).
AI_HistorySheetward's own log of your AI authoring — every prompt, with its date, type (Draft / Revise / Reshape with AI) and author. It's a history, not part of the app: it builds nothing, and you can delete it.

Master data that reads well everywhere (List_): the first row holds the column headers, and the first column is the ID that gets stored on records — keep it short and stable (CUST-001). Put a Name or Description column right beside it: that text is what the dropdown shows while picking, and printed records pair the two as ID - description — so a filed copy reads "CUST-001 - Acme Corp", not a bare code. A list with only an ID column still works; its values just stand alone.

Header plus line items: one Form_ sheet can hold a header section and a repeating line-items table — think of a purchase order: one set of order details, many item rows. Sheetward links the two automatically, and exports and imports keep that link through a Record ID column.

Section markers: for document-style layouts, put HEADER or LINE ITEMS on a row of its own to say what comes next. Under HEADER, write label/value pairs — several pairs can sit side by side. Under LINE ITEMS, the next row holds the table's column names. A title row above is fine. The marker text is also the name the Section column in your Rules and Logic sheets points at. A LINE TOTALS block (document totals) is stored with the header. A form can carry several line grids — but each needs its own ALL-CAPS banner ending in LINES or LINE ITEMS, and a second grid without one stops the upload until you fix it (see Laying out a form).

Several sections for a long form: twenty fields in one unbroken column is hard to read — and hard to fill in. So a sheet may carry several header sections — up to the six-section limit below: give each block its own banner row in CAPITALS — IDENTIFICATION, WARRANTY, LOCATION. The app draws one card per block, in sheet order. Two rules apply once a form groups: every banner must be in CAPITALS, and no two may repeat. Grouping is layout only — the fields still save as one record, so exports, imports, rules and formulas carry on unchanged. Section titles can be translated from the Translation_ sheet.

Form name: a heading row above the first marker — say a merged, centered "Travel Expenses" banner — becomes the form's display name. Leave it out and the name comes from the sheet name after Form_. Add several Form_ sheets and each becomes its own page in the app; the first one is the landing page.

About the app (Info_): add a sheet named Info_ and write free-text notes — what the app is for, how to use it, who to contact. That content greets your users at the top of the generated app's Help guide. Each row becomes a line, and blank rows stay as paragraph breaks. Formatting carries over: cell bold and italic (even a few words styled within a cell) become emphasis, and light markdown works too — ## headings, - bullets, and [links](https://…). The sheet can also set the app's region with country:, currency: or locale: rows (e.g. country: DE), which seed the app's regional settings.

Translations (Translation_): want the app's field labels, dropdown values and validation messages in more than one language? Add a Translation_ sheet plus per-language columns on your List_ sheets. The Localization topic has the full walkthrough.

Size limitsUp to
Sheets in the workbook30
Sections on one Form_ sheet6
Fields on one Form_ sheet (all sections together)50
Rows on any sheet200
Columns on any sheet40

Size limits: an app specification workbook can contain up to 30 sheets, and each Form_ sheet can have up to 6 sections and 50 fields in total. Sheets are capped at 200 rows and 40 columns.