Really frustrated right now as I have been tr...

(Aaron Blau) #1

Really frustrated right now as I have been trying to figure out what is going on for multiple hours.

I have an app that is about ready to deploy, it has been working fine for the past few days as I have been testing it. Then today I ran a deployment check and noticed an error for one of the tables. It advised regenerating, when I did that it for some reason started skipping row 1 and recognizing row 2 as the table headers.

I’ve completely deleted the tab, tried renaming the tab, tried changing the column header and no matter what I do the issue is still happening.

Can anyone advise why this might be happening?


Hi Are your headers formatted bold, that might help.

(Aaron Blau) #3

Hi Lynn, I don’t know if I am more or less frustrated that your recommendation fixed the problem as I have made many, many tables at this point and this has never happened before. Thanks for your reply.

Is this documented somewhere? I read through the data section and didn’t see any mention of this.

(Philip Garrett) #4


Lynn’s suggestion is a good one and should help.

Here is what is going on.

AppSheet uses heuristics to find the header row.

In your case, it appears you have a table with a single data column and all of the data values in that column are short text strings. This is a worst case scenario for our heuristic for finding the first data row.

  1. There are very few columns and very few rows for our heuristic to examine. 2. All of the column values contain short text strings. Such short text strings look a lot like column headers. 2. Our heuristic looks for words that are common in headers. In your case, row two contains the word “commission” which is one of common header words we explicitly look for. That is causing the heuristic to weigh the row as a likely header.

Our heuristic treats rows in bold text, as more likely header row. That is why Lynn suggested making the header row bold. Doing that will increase the likelihood the first row will be recognized as the header row.

If that is not sufficient, you can also try moving “commission” down into a later row. The farther the row is from

the top of the worksheet, the less likely we consider it to be the header row.

If all else fails remove “commission” from the list, do the inference, and then restore “commission” after the inference finishes.

If none of these things work, please let me know so I can help you further.

(Aaron Blau) #5


Hi Phillip,

I really appreciate the detailed reply but I really don’t understand why you would use heuristics in this situation.

Can I ask in what possible situation a row below row one should be given a heavier weight?

Is “header” by definition not supposed to be at the top?

This seems like a lot of complexity for something that should remain simple. Maybe you can provide me an example where it would be necessary to search somewhere besides row 1.

(Aaron Blau) #6


Also, is this information documented anywhere?

(Philip Garrett) #7


AppSheet works with a variety of spreadsheets including lots of Excel worksheets. People often define multi-row headers in their worksheets where there are two, three, or four rows of headers. The top rows often group the headers below. We try to accommodate all of these cases. Our heuristic works well, but it is not perfect.

(Aaron Blau) #8


Fair enough, sure seems like this should be explained somewhere, if it is, it needs to be more exposed as I can’t find it and am not one to post without exhaustively searching first.

This is where I would expect it to be, but the paragraph about columns gives no indication and is actually misleading given your explanation. Tables: Diving Deeper

(Philip Garrett) #9

Hi Aaron,

You make a good point.

The whole process for finding the header is described in the article I have cited below, but I will add a reference to that article in the article you cited. Thanks for pointing this out. It should help others in the future. (Look for the update to the docs in the next half hour or so.)

The heuristic, including the tip about making the header bold, is described in this article - Effective Use of Column Headers

Thanks for using AppSheet. We are constantly trying to improve it and appreciate your help in doing that. Effective Use of Column Headers

(Aaron Blau) #10


Bah, there it is plain as day! My fatal flaw, I let my frustration get the better of me, must have affected my google-fu. :slight_smile:

Thanks for all your help and I do agree adding the reference will help a bunch.

Been reading a bunch lately about lean business concepts so I really appreciate your comment about constant improvement (this is one of the main philosophies of “thinking lean”)

Loving the flexibility of the program, coming from MS access makes you really appreciate how easy these apps are to develop and more importantly deploy. Further, being able to calculate logic on the spreadsheets and how you’ve adapted the program to deal with this is such a beautiful thing.

(Philip Garrett) #11


Thanks for the kind words Aaron.

I have updated the article as you suggested.