Solución:
La siguiente URL le proporciona el CSV de una hoja de cálculo de Google por hoja. La hoja debe ser accesible para el público, por cualquier persona que tenga el enlace (no listado).
Los parámetros que debe proporcionar son:
- ID de hoja (que es simplemente el ID en la URL de una hoja de cálculo de Google
https://docs.google.com/spreadsheets/d/{{ID}}/edit
) - nombre de la hoja (que es simplemente el nombre de la hoja dado por el usuario)
https://docs.google.com/spreadsheets/d/{{ID}}/gviz/tq?tqx=out:csv&sheet={{sheet_name}}
Con esa URL puede ejecutar una solicitud GET para obtener el CSV. O péguelo en la barra de direcciones de su navegador.
Puede usar la API de Drive para hacer esto hoy; consulte https://developers.google.com/drive/v3/web/manage-downloads#downloading_google_documents; sin embargo, eso lo limitará a la primera hoja del documento. La API de Hojas de cálculo no expone la exportación como CSV hoy, pero puede ofrecerla en el futuro.
En primer lugar, debe hacer que el documento sea accesible para cualquier persona. Entonces obtienes url
. De esto url
deberías extraer mucho id
compuesto por letras y números grandes y pequeños. Entonces usa este script.
#!/bin/bash
long_id="id_assigned_to_your_document"
g_id="number_assigned_to_card_in_google_sheet"
wget --output-document=temp.csv "https://docs.google.com/spreadsheets/d/$long_id/export?gid=$g_id&format=csv&id=$long_id"
Si usa solo una tarjeta en el documento, su número es: g_id="0"
El problema que probablemente tendrá está relacionado con strange spaces
en el archivo obtenido. Yo uso este segundo script para procesarlo.
#!/bin/bash
#Delete all lines beginning with a # from a file
#http://stackoverflow.com/questions/8206280/delete-all-lines-beginning-with-a-from-a-file
sed '/^#/ d' temp.csv |
# reomve spaces
# http://stackoverflow.com/questions/9953448/how-to-remove-all-white-spaces-from-a-given-text-file
tr -d "[:blank:]" |
# regexp "1,2" into 1.2
# http://www.funtoo.org/Sed_by_Example,_Part_2
sed 's/"([−]?[0-9]*),([0-9]*)"/1.2/g' > out.csv
Actualizar
Como mencionó Sam, api es una mejor solución. Ahora hay una gran documentación sobre la dirección:
https://developers.google.com/sheets/quickstart/php
Con ejemplo que genera salida con estructura CSV.