Datos incompletos al exportar de Google Sheet a CSV

Hola a todos.
¿Les ha pasado que cuando tienen una GoogleSheets y lo exportan CSV para trabajar con app de App Inventor, el archivo CSV llega con datos faltantes? ¿Que puede pasar o como se puede solucionar?

He revisado mi Google Sheets y está completo o al menos se ven que si tiene los datos o celdas, pero al exportar a CSV llega con datos faltantes..
Lo raro es que no es solo una celda o columna específica la que no llega con datos, sino son celdas diferentes.
Mi Google Sheets tiene mas de 5000 registros y al consultar un registro específico con mi app, es donde me he percatado que no trae todos los datos.

Estoy adjuntando algunas imágenes de como están los datos en GS y como están en CSV. En las imágenes hay 2 registros ejemplos (5019 y 2051) que se puede ver y comparar que si están en GS y no están en el CSV, sino que lo trae como vacío o como "".

Por favor si alguien me puede dar una ayuda a que puede estar pasando

Imagen de datos en Google Sheets
Captura 02

Imagen de datos en CSV

Imagen de bloques usados para exportar de GS a CSV
Captura 01

Store the file directly using the web component. .
Just set SaveResponse to true and use the Web.GotFile event

Taifun

Gracias una vez mas por tu apoyo

Por favor dame mas detalles. Los bloques que estoy usando no son los adecuados?

Taifun

For future reference, when you write to a file using a file component you should use the completion event for file writes or updates instead of a clock timer to access that file contents.

Gracias por tu atención.
Cual es el evento de finalización al que refieres? me puedes por favor dar mas detalle?

@ABG is talking about the FileSaved event
http://ai2.appinventor.mit.edu/reference/components/storage.html#File

The faster solution is to use only the web component as I suggested earlier

Taifun

Me recomiendas:
"Just set SaveResponse to true and use the Web.GotFile event"

El archivo que leo desde mi app es text o csv.
Si utilizo GotFile como indicas para descargar, lo descarga como sheets o como csv ?
Eso implicaría que modifique todo mi código o bloque que utilizo para leer el registro que busco?

it downloads exactly the same as previously but it will be stored directly as file
how you download the data depends on the complete url to the file

Taifun

No descarga el archivo. Algo debo estar haciendo mal. Sale error 908
El error 908 me parece o refiere a permisos? por que en mi bloques iniciales lo descargaba sin problemas el archivo de Gs a CSV?

De acuerdo con el enlace que me indicaste; App Inventor Tutorials and Examples: File Download | Pura Vida Apps

Debo descargar esa extensión o solo con el componente web de app inventor es suficiente?

Estos son mis bloques.
image

It looks like you did not understand the example...

You do NOT need the File.SaveFile method anymore, because the file already has been saved by the web component... this is why we use SaveResponse = true and the Web.GotFile event

Btw. what are you doing in the Clock.Timer event?

EDIT: you might want to set ResponseFilename to pozos csv before calling Web.Get

http://ai2.appinventor.mit.edu/reference/components/connectivity.html#Web

ResponseFileName

Specifies the name of the file where the response should be saved. If SaveResponse is true and ResponseFileName is empty, then a new file name will be generated.

SaveResponse

Specifies whether the response should be saved in a file.

Taifun

Es cierto, no he entendido bien tu mensaje.
Probaré de acuerdo a tu último mensaje y dejando SaveResponse = true asi como también RespondeFilename con pozos.csv.
Sacaré el bloque File.SaveFile..

El evento Clock.Timer, lo usaba solo para dar un breve tiempo de segundo y me muestre el mensaje de que ya se había realizado la copia o descarga. Solo para eso era su uso.

No funciona... se queda en un loop reiterativo. He revisado y no doy con el posible error.

What Android version are you testing this on ?

Android 13

Then these are the blocks you need to download the google sheet data as a csv (and display it...)

You should not need any permissions to read or write to the ASD, which is where the file is saved

Respecto al 1er bloque Button1.Click y en donde has usado el Join: En el 3er parámetro que unes, indicas: /export?format=csv
En mi caso, mi url indica al final: .......5IK47oH8/gviz/tq?tqx=out:csv&sheet=Data
Debo reemplazar a partir del último "/" hacia adelante o agregar al final de mi linea lo que tu indicas en tu 3er parámetro?

Por favor me puedes indicar ?

Just replace the id
Taifun

Lo he adaptado tal cual me lo indicaste pero sale error: 908
Puse módulo When Screen1.ErrorOccurred y me indica no copia y con error 908.

Reemplace: /gviz /tq?tqx=out:csv&sheet=Data con /export?format=csv

mis bloques son como me indicas:

Ah, the use of gviz query in your url probably explains the reason for your missing data in the original post.

gviz requires all the items in a column to be of the same type: e.g. numbers or strings. gviz will decide what value type exists in the column, then omits any values that do not meet that value type. My guess is that the two missing "numbers" where not of the same type as all the other "numbers" in their respective columns. export as csv does not suffer from the same problem. Either fix the value types in your sheet, or use export as csv.

Seeing your url also shows that you are selecting a specific sheet, you simply need to add another parameter to the url I showed in my example, using the "gid" of the specific sheet:

You can find the gid in the url address bar: