NExS.app Worksheet Reference
The NExS.app worksheet is a special worksheet in your Excel file that configures how your app works. This reference documents all available options.
Structure
The worksheet uses a key-value format in columns A, B, and C:
|
A |
B |
C |
| 1 |
app |
App Name |
|
| 2 |
|
option |
value |
| 3 |
view |
Range |
|
| 4 |
|
option |
value |
- Section headers (
app, view) go in column A
- Options go in column B
- Values go in column C (or D for nested options)
- Comments start with
# or //
- Formatting (colors, fonts) on the
NExS.app worksheet is ignored, so you can use it for emphasis or readability
The worksheet name is not case-sensitive: NExS.app and nexs.app both work.
Keyword Matching
Keywords and option names are not case-sensitive and may contain spaces. submitList, SubmitList, and Submit List are all the same option, as are cellLocks and cell locks. This reference uses camelCase spellings throughout.
App Section
The app section must come first and defines global settings.
Required
| Option |
Description |
| (name) |
Column B of the app row contains your app’s name |
Optional
| Option |
Values |
Description |
mode |
open, personal, team, access code |
Deployment mode (default: open) |
access codes |
See below |
List of access key/code pairs for access code mode |
accessList |
Comma-separated emails |
Allowed users for team mode |
allowedOrigins |
Domain patterns |
Restrict which sites can embed your app |
noViewNav |
true |
Hide the built-in view navigation menu |
submitList |
Comma-separated emails |
Recipients for sendData actions (default: the app owner) |
cellLocks |
Range(s) |
Define shared cell locks for Open mode |
chartOptions |
See below |
Global chart styling defaults |
sliderOptions |
See below |
Global slider styling defaults |
ledOptions |
See below |
Global LED styling defaults |
access codes
|
A |
B |
C |
D |
| 2 |
|
access codes |
|
|
| 3 |
|
|
KeyName1 |
code123 |
| 4 |
|
|
KeyName2 |
code456 |
chartOptions
|
A |
B |
C |
D |
| 2 |
|
chartOptions |
|
|
| 3 |
|
|
palette |
#3366cc, #dc3912, #ff9900 |
| 4 |
|
|
fontSize |
medium |
| 5 |
|
|
backgroundColor |
white |
| 6 |
|
|
textColor |
#333333 |
| 7 |
|
|
alternateColor |
#f5f5f5 |
| 8 |
|
|
highlightColor |
#ffffe0 |
| 9 |
|
|
markers |
circle, square, diamond |
| 10 |
|
|
markerSize |
4 |
| 11 |
|
|
lineWidth |
2 |
| 12 |
|
|
gradientFill |
true |
sliderOptions
|
A |
B |
C |
D |
| 2 |
|
sliderOptions |
|
|
| 3 |
|
|
color |
#337ab7 |
| 4 |
|
|
shape |
round |
ledOptions
|
A |
B |
C |
D |
| 2 |
|
ledOptions |
|
|
| 3 |
|
|
size |
medium |
View Section
Each view section defines a visible area of your app. You can have multiple views.
Basic Syntax
The range can be:
Sheet1!A1:G18 — Specific range on a sheet
Sheet1 — Entire worksheet
A1:G18 — Range on the first sheet
MyNamedRange — A named range from Excel
View Options
| Option |
Values |
Description |
name |
Text |
Display name in view navigation (default: View 1, View 2, …) |
backgroundColor |
Color or cell ref |
View background color (default: transparent) |
public |
true |
Makes view accessible without login (team/access code modes) |
hidden or invisible |
true |
Hides view from UI (accessible via API only) |
accessKeys |
Comma-separated keys |
Access keys that can see this view (access code mode) |
readACL or readAccess |
Comma-separated emails |
Users who can see this view (team mode) |
writeACL or writeAccess |
Comma-separated emails |
Users who can edit inputs (team mode) |
Editable Cells
| Option |
Values |
Attributes |
editable |
Cell(s) or range(s) |
required, email, phone, checkbox, radioGroup, accessKeys: keys |
input / inputs |
Same as editable |
Same attributes |
Examples:
|
A |
B |
C |
D |
| 2 |
view |
Sheet1!A1:H20 |
|
|
| 3 |
|
editable |
B3:B8 |
|
| 4 |
|
inputs |
B3:B5, C12 |
|
| 5 |
|
input |
D5 |
required |
| 6 |
|
input |
E5 |
required, email |
| 7 |
|
inputs |
F1:F3 |
checkbox |
| 8 |
|
inputs |
G1:G4 |
radioGroup |
| 9 |
|
inputs |
H1:H5 |
accessKeys: Admin |
Editable cells must be inside the view’s range. Don’t also make an editable cell a button: a button cell is no longer editable.
Chart Definition
Charts overlay a range of cells within a view.
|
A |
B |
C |
D |
| N |
|
chart |
A10:E18 |
|
| N+1 |
|
|
source |
Sheet2!A1:D6 |
| N+2 |
|
|
type |
column |
Chart Options
| Option |
Values |
Description |
source |
Range |
Data source (required) |
name |
Text |
Chart name, used as a linkTo target. Must be unique across the app; matched case-sensitively |
type |
See below |
Chart type (default: column) |
sort |
ascending, descending |
Sort X-axis (re-sorts when a legend item is toggled off) |
show |
total, percent |
Additional data for stacked charts |
orientation |
row, column |
Data layout in source (default: row for line, bar and column charts; column for pie charts) |
yMin |
Number |
Minimum Y-axis value |
yMax |
Number |
Maximum Y-axis value |
linkTo |
Chart name |
Link to the chart with this name. Repeat the row to link to several charts. Linked charts must be in the same view and share the same categories; unknown names aren’t caught on upload |
highlight |
Cell reference |
Cell value highlights X-axis section (only for chart types with an X axis) |
Chart Types:
column, bar, line, area, pie, stacked column, stacked bar, stacked line, stacked area, legend
Chart Styling Options
| Option |
Values |
Default |
Description |
palette |
Comma-separated colors |
|
Data series colors |
fontSize |
small, medium, large |
medium |
Axis label size |
backgroundColor |
Color |
transparent |
Chart background |
textColor |
Color |
black |
Titles, axis labels, tick marks and legend items |
alternateColor |
Color |
|
Alternating Y-axis bands |
highlightColor |
Color |
#ffffe0 |
X-axis highlight color |
markers |
Comma-separated shapes |
circle, square, diamond, triangle, triangle-down |
Any order or subset of these shapes |
markerSize |
Number |
4 |
Marker size (0 = none) |
lineWidth |
Number |
2 |
Line thickness (0 = none) |
gradientFill |
true |
|
Gradient fill for area charts |
legend |
Position |
bottom |
top, bottom, left, right, optionally followed by reversed; none, off or hide removes the legend |
Slider Definition
|
A |
B |
C |
D |
| N |
|
slider |
|
|
| N+1 |
|
|
cell |
B5 |
| N+2 |
|
|
linkedCell |
C5 |
Slider Options
| Option |
Values |
Description |
cell |
Cell reference |
Where slider appears (required) |
linkedCell |
Cell reference |
Editable cell to update (required) |
minimum |
Number |
Min value (default: 0) |
maximum |
Number |
Max value (default: 10) |
step or increment |
Number |
Step size (default: 1) |
color |
#rrggbb |
Handle color |
shape |
round, square, triangle |
Handle shape |
LED Definition
|
A |
B |
C |
D |
| N |
|
led |
|
|
| N+1 |
|
|
cell |
D3 |
LED Options
| Option |
Values |
Description |
cell |
Cell reference |
Where LED appears (required) |
size |
small, medium, large |
LED size |
Cell values: red, green, yellow, blue, or any other value for “off”
|
A |
B |
C |
| N |
|
button |
A10 |
| N |
|
buttons |
A10, B10, C10:C12 |
Button behavior is defined in the cell content.
Button Content Syntax
Label {action: parameters, property: value}
| Action |
Syntax |
Description |
setView |
{setView: 'ViewName'} |
Navigate to another view |
setInputs |
{setInputs: ['cell', 'value', ...]} |
Set input cell values. Cells refer to the current view; prefix a view name to target another view, e.g. View2!A2 or 'View 2'!A2 |
sendData |
{sendData: 'A1:C10'} |
Email data to submitList, or to the app owner if submitList is not set |
alert |
{alert: 'message'} |
Show alert dialog |
confirm |
{confirm: {message: '...', ok: {...}, cancel: {...}}} |
Confirmation dialog; takes an optional type, like alert |
getCellLock |
{getCellLock: 'cell'} |
Get a temporary (15-minute) cell lock |
confirmCellLock |
{confirmCellLock: {cell: 'cell', expires: 'YYYY-MM-DD', success: {...}, fail: {...}}} |
Confirm a lock: permanent if expires is omitted, otherwise until the start of that date. expires, success and fail are optional; the short form {confirmCellLock: 'cell'} makes a permanent lock. The app instance must already own the lock from getCellLock; the app owner can lock regardless |
releaseCellLock |
{releaseCellLock: 'cell'} |
Release a cell lock (only the instance that set it, or the app owner) |
releaseAllCellLocks |
{releaseAllCellLocks: true} |
Release all locks (owner only) |
sendData replaces the deprecated SubmitButton feature.
Each cell lock cell is 0 when the app is created and returns 1 once it is locked, so formulas can read lock state, for example to disable a button for a slot that is already taken.
| Property |
Values |
Description |
bg |
Color |
Background color |
fg |
Color |
Text color |
fontWeight |
normal, bold |
Font weight |
fontStyle |
normal, italic |
Font style |
disabled |
true/false |
Disable button |
hidden |
true/false |
Hide button |
extra |
Any value |
Custom data for event handlers |
| Macro |
Description |
%CELL |
The button’s cell address |
%REQUIRED |
true if any required inputs are empty |
# Simple navigation
Next {setView: 'Page 2'}
# Form submission
Submit {disabled: %REQUIRED, sendData: 'A1:C10', setView: 'Thank You'}
# Styled button
Click Me {bg: 'steelblue', fg: 'white', fontWeight: 'bold'}
# Dynamic (using formula)
="Submit {disabled: " & IF(B1="", "true", "false") & "}"
# With confirmation
Delete {confirm: {message: 'Delete all data?', ok: {setInputs: ['A1:A10', '']}, cancel: {}}}
Complete Example
|
A |
B |
C |
D |
E |
| 1 |
app |
Rate Calculator |
|
|
|
| 2 |
|
mode |
open |
|
|
| 3 |
|
allowedOrigins |
*.mycompany.com |
|
|
| 4 |
|
submitList |
rates@mycompany.com |
|
|
| 5 |
|
chartOptions |
|
|
|
| 6 |
|
|
palette |
steelblue, coral |
|
| 7 |
|
|
fontSize |
small |
|
| 8 |
view |
Calculator!A1:G25 |
|
|
|
| 9 |
|
name |
Calculator |
|
|
| 10 |
|
backgroundColor |
white |
|
|
| 11 |
|
editable |
B3:B8 |
required |
|
| 12 |
|
editable |
C12 |
email |
|
| 13 |
|
chart |
D1:G12 |
|
|
| 14 |
|
|
source |
Data!A1:D6 |
|
| 15 |
|
|
type |
bar |
|
| 16 |
|
slider |
|
|
|
| 17 |
|
|
cell |
B10 |
|
| 18 |
|
|
linkedCell |
B5 |
|
| 19 |
|
|
minimum |
0 |
|
| 20 |
|
|
maximum |
1000 |
|
| 21 |
|
led |
|
|
|
| 22 |
|
|
cell |
G20 |
|
| 23 |
|
buttons |
A24, A25 |
|
|
| 24 |
view |
Calculator!A30:G45 |
|
|
|
| 25 |
|
name |
Results |
|
|
| 26 |
|
public |
true |
|
|