I also struggled with this, and I found the following:
Each column has a name indicated on the first row. In the Google API example, the first column is the "first name" and is listed in cell A1 of the existing sheet.
When you add lines (for example, in the sample code that you pasted above), the "LocalName" property must exactly match. In addition, spaces in the column name are removed in the lower case of the API (God knows why?), Therefore, if you define the name of your column as βNameβ, the API will reduce the case to βnameβ and try to match it. Therefore, when you add a row, you need to define a lowercase column name in your code, without spaces.
To be safe, create a worksheet with one column and set the cell of the first row as "name". Now run the sample code with your authentication and try adding a line with only one entry, for example:
ListEntry row = new ListEntry(); row.Elements.Add(new ListEntry.Custom() { LocalName = "name", Value = "John" });
And it won't work
row.Elements.Add(new ListEntry.Custom() { LocalName = "Name", Value = "John" });
Yoram source share