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
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.
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?
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?
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
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.
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.
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?
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: