usar trucos spreadsheets sheets sheet hojas hoja google funcion ejemplos developer como calculo python google-spreadsheet google-api google-api-python-client google-sheets-api

trucos - python google sheets



¿Cómo accedo(leo, escribo) a las hojas de cálculo de Hojas de cálculo de Google con Python? (6)

Creo que estás mirando la sección de feeds basados ​​en células en esa página de documentación API. Luego puede usar las solicitudes PUT / GET dentro de su secuencia de comandos de Python, usando commands.getstatusoutput o subprocess .

Me pregunto si puede indicarme un ejemplo de lectura / escritura en / desde un documento / hoja de cálculo de Google utilizando Python.

Miré la API de Google Docs aquí https://developers.google.com/google-apps/spreadsheets/ pero no estoy seguro de si toco el enlace correcto. También un ejemplo será de gran ayuda.

Lo que estoy tratando de hacer es consultar hojas de cálculo basadas en las diferentes columnas más como una consulta SQL y luego hacer un análisis en sentido descendente con los datos y ponerlo en otra hoja de cálculo o documento en google docs.

Mejor, -Abhi


Eche un vistazo a GitHub - gspread .

Encontré que es muy fácil de usar y ya que puedes recuperar una columna completa

first_col = worksheet.col_values(1)

y toda una fila por

second_row = worksheet.row_values(2)

puedes construir más o menos una selección básica ... donde ... = ... fácilmente.


Eche un vistazo al puerto gspread para api v4 - pygsheets . Debería ser muy fácil de usar en lugar del cliente de google.

Ejemplo de muestra

import pygsheets gc = pygsheets.authorize() # Open spreadsheet and then workseet sh = gc.open(''my new ssheet'') wks = sh.sheet1 # Update a cell with value (just to let him know values is updated ;) ) wks.update_cell(''A1'', "Hey yank this numpy array") # update the sheet with array wks.update_cells(''A2'', my_nparray.to_list()) # share the sheet with your friend sh.share("[email protected]")

Vea los documentos here .

Autor aquí.


Los últimos documentos de google api documentan cómo escribir en una hoja de cálculo con Python, pero es un poco difícil de navegar. Aquí hay un enlace a un ejemplo de cómo anexar .

El siguiente código es mi primer intento exitoso de agregar a una hoja de cálculo de google.

import httplib2 import os from apiclient import discovery import oauth2client from oauth2client import client from oauth2client import tools try: import argparse flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args() except ImportError: flags = None # If modifying these scopes, delete your previously saved credentials # at ~/.credentials/sheets.googleapis.com-python-quickstart.json SCOPES = ''https://www.googleapis.com/auth/spreadsheets'' CLIENT_SECRET_FILE = ''client_secret.json'' APPLICATION_NAME = ''Google Sheets API Python Quickstart'' def get_credentials(): """Gets valid user credentials from storage. If nothing has been stored, or if the stored credentials are invalid, the OAuth2 flow is completed to obtain the new credentials. Returns: Credentials, the obtained credential. """ home_dir = os.path.expanduser(''~'') credential_dir = os.path.join(home_dir, ''.credentials'') if not os.path.exists(credential_dir): os.makedirs(credential_dir) credential_path = os.path.join(credential_dir, ''mail_to_g_app.json'') store = oauth2client.file.Storage(credential_path) credentials = store.get() if not credentials or credentials.invalid: flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES) flow.user_agent = APPLICATION_NAME if flags: credentials = tools.run_flow(flow, store, flags) else: # Needed only for compatibility with Python 2.6 credentials = tools.run(flow, store) print(''Storing credentials to '' + credential_path) return credentials def add_todo(): credentials = get_credentials() http = credentials.authorize(httplib2.Http()) discoveryUrl = (''https://sheets.googleapis.com/$discovery/rest?'' ''version=v4'') service = discovery.build(''sheets'', ''v4'', http=http, discoveryServiceUrl=discoveryUrl) spreadsheetId = ''PUT YOUR SPREADSHEET ID HERE'' rangeName = ''A1:A'' # https://developers.google.com/sheets/guides/values#appending_values values = {''values'':[[''Hello Saturn'',],]} result = service.spreadsheets().values().append( spreadsheetId=spreadsheetId, range=rangeName, valueInputOption=''RAW'', body=values).execute() if __name__ == ''__main__'': add_todo()


Sé que este hilo es viejo ahora, pero aquí hay una documentación decente en Google Docs API. Fue ridículamente difícil de encontrar, pero útil, así que tal vez te ayude a algunos. http://pythonhosted.org/gdata/docs/api.html .

Usé gspread recientemente para un proyecto para graficar los datos de tiempo de los empleados. No sé cuánto podría ayudarte, pero aquí hay un enlace al código: https://github.com/lightcastle/employee-timecards

Gspread hizo las cosas bastante fáciles para mí. También pude agregar lógica para verificar varias condiciones para crear resultados de un mes a la fecha y de un año hasta la fecha. Pero acabo de importar toda la hoja de cálculo dang y la analicé desde allí, así que no estoy 100% seguro de que sea exactamente lo que estás buscando. La mejor de las suertes.


(De junio a diciembre de 2016) La mayoría de las respuestas aquí están desactualizadas ya que: 1) las API de GData son la generación anterior de API de Google, y es por eso que a @Josh Brown le resultó difícil encontrar esa antigua documentación de la API de GData Docs. Si bien no todas las API de GData han sido desaprobadas, todas las nuevas API de Google no usan el protocolo de datos de Google ; y 2) Google lanzó una nueva API de Hojas de cálculo de Google (no GData). Para utilizar la nueva API, debes obtener la API Client Library de API de Google para Python (es tan fácil como pip install -U google-api-python-client [o pip3 para Python 3]) y usar la última Sheets API v4 + , que es mucho más potente y flexible que las versiones anteriores de API.

Aquí hay una muestra del código de los documentos oficiales para ayudarlo a comenzar. Sin embargo, aquí hay ejemplos un poco más largos y más "reales" de usar la API de la que puedes aprender (videos más publicaciones en el blog):

La última Sheets API proporciona características no disponibles en versiones anteriores, es decir, brindar a los desarrolladores acceso programático a una hoja como si estuvieras usando la interfaz de usuario (crear filas congeladas, formatear las celdas, cambiar el tamaño de filas / columnas, agregar tablas dinámicas, crear gráficos, etc. .), pero NO como si fuera una base de datos en la que pudiera realizar búsquedas y obtener las filas seleccionadas. Básicamente, tendrías que construir una capa de consulta sobre la API que hace esto. Una alternativa es utilizar el lenguaje de consulta de la API de visualización de Google Charts , que admite consultas de tipo SQL . También puede realizar consultas desde la propia hoja . Tenga en cuenta que esta funcionalidad existía antes de la API v4 y que el modelo de seguridad se actualizó en agosto de 2016 . Para obtener más información, verifique mi compartimiento de G + en una descripción completa de un experto en desarrollo de Google .

También tenga en cuenta que Sheets API es principalmente para acceder mediante programación a las operaciones y la funcionalidad de hoja de cálculo como se describe anteriormente, pero para realizar acceso de nivel de archivo como importaciones / exportaciones, copiar, mover, cambiar el nombre, etc., utilice la API de Google Drive en su lugar. Ejemplos de uso de Drive API:

(*) - TL; DR: suba el archivo de texto plano a Drive, importe / convierta al formato de Google Docs y luego exporte ese documento como PDF. La publicación anterior usa Drive API v2; esta publicación de seguimiento describe la migración a Drive API v3, y aquí hay un video para desarrolladores que combina las dos publicaciones del "convertidor de los pobres".

Para obtener más información sobre cómo usar las API de Google con Python en general, consulte mi blog , así como una variedad de videos de desarrolladores de Google ( serie 1 y serie 2 ) que estoy produciendo.

PD. En lo que respecta a Google Docs , no hay una API REST disponible en este momento, por lo que la única forma de acceder mediante programación a un Doc es mediante Google Apps Script (que como Node.js es JavaScript fuera del navegador, pero en lugar de ejecutándose en un servidor Node, estas aplicaciones se ejecutan en la nube de Google, también revisa mi video introductorio ). Con Apps Script, puede compilar una aplicación de Documentos o un complemento para Documentos (y otras cosas como Hojas de cálculo y Formularios).