es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo mantener fórmulas con get_all_records() en pygsheets?

Estoy utilizando pygsheets para actualizar y manipular una hoja de cálculo de Google. Utilizo get_all_records para importar los datos a una lista de diccionarios de la siguiente manera:

gsheetRecords = ws.get_all_records(empty_value = '', head = 1)  # devuelve una lista de diccionarios

Pero esta llamada no preserva las fórmulas y codifica de manera rígida los valores resultantes que se muestran en las celdas. Así que si la celda A2 es 22 y la celda B2 es =A2*3, get_all_records trae el valor de 66 para la celda B2.

Revisé la documentación y algunos tutoriales en línea, pero no pude resolverlo. ¡Se agradecería cualquier consejo o solución alternativa!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, el método get_all_records no conserva las fórmulas y codifica los valores que aparecen en las celdas. Esto se debe a que get_all_records lee e importa los valores presentes en la hoja. Por lo tanto, no evalúa las fórmulas ni referencia los valores de las celdas. En lugar de get_all_records, puedes usar el método get_all_values que conservará las fórmulas (no las referencias individuales de las celdas) y las devolverá como cadenas de texto.

    Posteriormente, puedes evaluar las fórmulas utilizando la función eval de Python o una biblioteca especializada como pycel. Sin embargo, asegúrate de revisar las fórmulas antes de evaluarlas para evitar cualquier inyección de código malicioso.

    Como alternativa, puedes considerar utilizar la API de Google Sheets directamente a través de la biblioteca gspread de Python para conservar las fórmulas. Esto te dará más control sobre los datos que importas y manipulas.

Comments are closed.