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?

¿Fue útil?

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()

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top