Desactivar la búsqueda automática de la fecha de análisis con Google Scripts
-
24-10-2019 - |
Pregunta
Estoy usando Google Scripts para algunas hojas de cálculo de Google magia y la fecha automática de análisis me está volviendo loco!La hoja de la que estoy trabajando está llena de todo tipo de formatos de fecha y prefiero tratar con ellos como Cadenas, que tiene Google de convertir a la Fecha de objetos con cada uno .getValues() la llamada.Después de mucho buscar, todavía no puedo encontrar una manera de detener/desactivar Google de forma automática el análisis de estas Cadenas.¿Alguien sabe cómo?
Solución
Sí es posible, pero usted debe hacer un cambio antes de llamar getValues, y el uso getDisplayValues():
// do not use getValues(), which will convert dates
var string_data = my_sheet.getRange(...).getDisplayValues();
Si sólo desea utilizar el valor de la pantalla en el caso limitado de, digamos, fechas, puede copiar los valores y muestra, a continuación, comprobar si su valor es una fecha, y si es así, utilice la pantalla correspondiente en su lugar:
// use getDisplayValues() for dates, getValues() otherwise
var string_data = my_sheet.getRange(...).getDisplayValues();
var value_data = my_sheet.getRange(...).getValues();
value_data.forEach(function(row_vals, i) {
row.forEach(function(cell_val, j) {
if(is_date(cell_val)) // see e.g. https://stackoverflow.com/a/17110249/3160967
do_something_with(string_data(i, j));
else
do_something_with(cell_val);
});
});
Por último, el por encima de las necesidades de modificación si quieres usarlo como hoja de función, debido a que la función de llamadas de aplicar automáticamente getValues() antes de que la función se ejecuta el código.Para evitar esto, usted puede utilizar las técnicas descritas en https://webapps.stackexchange.com/a/30784
Otros consejos
De hecho, no es posible, pero una solución factible es crear una hoja auxiliar e insertar una fórmula para concatenar todos los valores en la hoja de origen con una cadena vacía. Después getValues()
En esta hoja auxiliar, que puede estar oculta o eliminada por el script después de usarse.
La fórmula puede ser tan simple como configurar esto en A1 de la hoja auxiliar
=ArrayFormula(Sheet1!A:T&"")
Una advertencia con esta solución es que si el usuario establece un formato personalizado para sus fechas, no se mantendrá. Pero si eso es importante, puede obtenerlos usando getNumberFormats()