Datos incompletos al exportar de Google Sheet a CSV

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:

(noted in FAQ)

estuve haciendo muchas pruebas y revisiones y hasta revise la GS y los datos almacenados vs lo exportado y finalmente veo que ya bajo la data bien. Bueno son mas de 5800 registros y varios campos pero rapidamente he podido ver y espero no equivocarme pero ya puedo ver los datos que antes no aparecian.

Respondiendo a tu comentario, la data original que se almacenaba en el GS si venia digamos en formato correcto para cada columna, pero igual configuré en el mismo GS el formato de cada columna
La prueba final fue:

  • No usar el SaveResponse y ReponseFilename eso daba continuamente el erro 908
  • Si utilice el Join que una los parametros del URL, creo eso fue lo que mas ayudo...¿como? no lo sé pero además de mas estructurado era mas lógico

finalmente quedó de esta manera y no dió error 908 y la data la exportaba muy bien

Muchas Gracias a todos por su paciencia y enseñanza

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.