The following sections provide guidance on the effective use of column headers:
Locate column headers
AppSheet uses the following heuristics to locate your spreadsheet's header row:
- Assumes that rows containing bold text are more likely header rows.
When all of your data values are bold text, this can mislead AppSheet header detection. In this case, making your header row bold, helps AppSheet find your header row. - Examines the data value in each cell of the row and tries to determine each cell's data type based on the cell's value.
If AppSheet determines that the cell's value is one of the known data types, then it can be fairly confident the row contains data and is not a header. - Examines the format value in each cell of the row.
If the cell's format matches one of the known data types, then AppSheet can be fairly confident the row contains data and is not a header. - Examines the text value in each cell of the row.
If the cell's text value is a frequently occurring header word like "Name", "Address", "Amount", "Total", and so forth, AppSheet can be fairly confident the row is a header. - Assumes rows that appear closer to the top of the worksheet are more likely to be header rows.
However, people sometimes create multi-row headers where the last header row is actually the most meaningful (or the most specific) header row, so AppSheet attempts to recognize multi-row headers.
Infer column types from the header
AppSheet infers the types of columns from the column header names as well as from the content of the rows. Especially in cases where there are no existing data rows, it is important to pay attention to the column header names.
There are special words in column headers that trigger AppSheet to infer specific column types. For example, a column header name Web Site suggests that the data is of the URL
type. Currently, this only works with English but we intend to add similar capabilities for other languages in the future.
There are a few special cases to be aware of:
- A column header ending with a question mark is inferred as a
Yes/No
data type. - A column header ending with an exclamation mark is inferred as an action URL
- A column header whose name is similar to another table already in the app may be inferred as a table
Ref
type. For example, if there is a table calledProducts
and a new spreadsheet is added with a column calledProduct
orProducts
, AppSheet will infer that it is aRef
type.
If you are building an app from a Google Form and your question is marked as Text
, a similar inference process occurs on the question title.
Here is a complete list of field types, what they do, and the trigger words that activate them:
Field type | Description |
|
What it does: An Trigger words: address, where |
|
What it does: A Trigger words: No trigger words. Must be selected in the app editor. |
ChangeLocation |
What it does: A Trigger words: No trigger words. Must be selected in the app editor. |
ChangeTimestamp |
What it does: A Trigger words: No trigger words. Must be selected in the app editor. |
Color |
What it does: A Trigger words: blue, green, orange, purple, red, yellow |
Date |
What it does: A Trigger words: birthday, dob, day, month, year |
DateTime |
What it does: A Trigger words:date, dates, day, days, month, months, year, years, timestamp |
Decimal |
What it does: A Trigger words: altitude, altitudes, amount, amounts, amt, amts, age, ages, capacity, capacities, depth, depths, displacement, displacements, height, heights, hours, latitude, latitudes, length, lengths, longitude, longitudes, magnitude, magnitudes, mass, masses, population, populations, pop, qty, qtys, quantity, quantities, size, sizes, sum, sums, total, totals, units, weight, weights, width, widths, volume, volumes |
Drawing |
What it does: A Trigger words: depiction, diagram, drawing, illustration, layout, likeness, rendering, sketch |
Duration |
What it does: A Duration field contains a time duration specified in hours, minutes, and seconds.Trigger words: duration, timespan, period, elapsed |
Email |
What it does: An Trigger words: email, e-mail |
Enum |
What it does: An
Trigger words: No trigger words. The field type is determined automatic if a Data Validation rule was specified in your worksheet; otherwise, you must specify the field type in the app editor. |
EnumList |
What it does: An Trigger words: No trigger words. Must be selected in the app editor. |
File |
What it does: A Trigger words: file, files |
Image |
What it does: An Trigger words: image, images, picture, pictures, photograph, photographs, photo, photos, figure, figures, fig, figs, icon, icons, illustration, illustrations, snapshot, snapshots |
LatLong |
What it does: A Trigger words: latlong, geolocation |
LongText |
What it does: A LongText field contains long multi-line text values.Trigger words: notation, notations, note, notes, desc, description, descriptions, comment, comments |
Name |
What it does: A Trigger words: first, givenname, given-name, last, middle, mi, name, names, surname, surnames |
Number |
What it does: A Trigger words: altitude, altitudes, amount, amounts, amt, amts, age, ages, capacity, capacities, depth, depths, displacement, displacements, height, heights, hours, latitude, latitudes, length, lengths, longitude, longitudes, magnitude, magnitudes, mass, masses, population, populations, pop, qty, qtys, quantity, quantities, size, sizes, sum, sums, total, totals, units, weight, weights, width, widths, volume, volumes |
Percent |
What it does: A Percent field contains a percent value with a specified decimal precision. Trigger words: %, discount, discounts, interest, percent, percentage, chance, percentages, probability, probabilities, quota, quotas, split |
Phone |
What it does: A Phone field contains a telephone number value. Your application can call or text this number. Trigger words: cell, cellphone, fax, mobile, pager, phone, phonenumber, tdd, tel, telephone, telex, tty |
Postal Code |
What it does: A Trigger words: zip, zipcode, postalcode |
Price |
What it does: A Trigger words: amount, amounts, amt, amts, balance, balances, bonus, bonuses, cash, commission, commissions, compensation, contribution, contributions, cost, costs, discount, discounts, dividend, dividends, donation, donations, dues, duty, duties, earnings, excise, expense, expenses, fee, fees, fine, fines, gain, gains, gross, indemnity, income, levy, levies, loss, losses, pay, payment, payments, payoff, pension, pledge, pledges, premium, premiums, price, prices, proceeds, profit, profits, receipts, reimbursement, reimbursements, remittance, remittances, remuneration, remunerations, rent, rents, revenue, revenues, royality, royalities, salary, salaries, sales, stipend, stipends, subtotal, subtotals, tariff, tariffs, tax, taxes, tip, tips, tithe, tithes, toll, tolls, total, totals, value, values, wage, wages, winnings |
Ref |
What it does: A Trigger words: No trigger words. Must be selected in the app editor. |
Signature |
What it does: A Trigger words: signature, signatures |
Thumbnail |
What it does: A Trigger words: thumbnail, thumbnails, logo, logos |
Time |
What it does: A Trigger words: hour, hours, mins, minute, minutes, second, seconds, secs, time, times |
URL |
What it does: A Trigger words: site, sites, URL, URLs, web, website, websites |
Yes/No |
What it does: A Trigger words: Starts with "has" or "is" or ends with "?". |
Display column headers
You can choose to display your table's column names in your app. To enable column name display, when configuring table view settings set the Show column headers check box. When you choose this option, your column widths will be expanded to accommodate the column name.
The Show column headers option is ignored for columns of type:
Address
ChangeLocation
Color
Email
File
LatLong
Phone
Progress
URL
Yes/No