¿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!
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 queget_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 deget_all_records
, puedes usar el métodoget_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 comopycel
. 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.