formatting - scripts - El script de Google Apps en forma envía formato de tiempo a Glitch/Fix
google spreadsheet macro (2)
Fondo:
Cómo: sospecho que este es un problema dentro de Google Form (proceso de envío) / hoja de cálculo, pero puede ser parte de la utilidad de conversión de fecha de la interfaz de hoja de cálculo (y es una función prevista).
Al ingresar un formato en un cuadro de texto en Formularios de Google , existe algún tipo de error de comunicación entre el Envío del formulario y la Hoja de cálculo de respuesta, o el procesamiento previo de los datos del Formulario antes de enviarlo a la hoja de cálculo. La falla solo parece ocurrir para los datos en un campo de texto del formato ##:## TEXT
donde TEXT
no contiene ''.'' personajes . Por ejemplo: 4:15 pm
reproducirá el error, pero las 4:15 pm
y las 4:15 pm
no lo harán.
Resultado: se agrega un carácter de apóstrofo al principio de la cadena cuando se coloca en la hoja de cálculo (es decir, a las ''4:15 pm
) que arroja varios subsistemas que tengo instalados y que usan esos datos de tiempo. Aquí hay dos capturas de pantalla (perdón por el mal tamaño en el segundo):
Estoy 99% seguro de que el fallo es causado por la combinación ##:
¿Arreglo temporal ?: La verdadera pregunta es ... ¿cómo podría eliminar ese molesto apóstrofo antes de comenzar a manipular los datos de tiempo? Sé cómo obtenerValor () de una celda / Rango. Supongamos que tengo el valor de una celda de la siguiente manera:
var value = myRange.getValue();
// value = ''4:15 pm
¿Cómo puedo procesar ese valor hasta las 4:15 pm
? Una función java simple podría ser
value = value.substring(1); // Assuming "value" is a String
Pero en Google App Scripts para Hojas de cálculo , no sé cómo lo haría.
Post-Script: es necesario procesar estos datos para que no tenga que dar una conferencia en el departamento de idiomas sobre cómo ingresar el formato de tiempo correctamente en sus formularios.
¡Gracias de antemano a aquellos que pueden ayudar!
¿Cómo puedo procesar ese valor hasta las 4:15 p.m.? Una función java simple podría ser
value = value.substring (1); // Suponiendo que "valor" es una cadena, pero en las secuencias de comandos de la aplicación Google para hojas de cálculo, no sé cómo lo haría.
Google Apps Scripts utiliza Javascript que tiene exactamente el mismo método.
value = value.substring(1);
debería devolver todo excepto el primer caracter.
Más acerca de la subcadena de Javascript en: http://www.w3schools.com/jsref/jsref_substring.asp
Si elimina el ''en la celda de la hoja de cálculo, la interfaz de la hoja de cálculo convertirá esta entrada en un objeto de fecha.
Esto podría (o no) ser un problema para usted, así que tal vez debería manejar esto cuando vuelva a leer sus datos para otro uso ... No sucede cuando el texto es diferente (por ejemplo, con PM) simplemente porque en este caso el ''no es necesario que la hoja de cálculo lo mantenga como una cadena ya que la hoja de cálculo no puede convertirlo en un objeto de fecha (valor de tiempo).
La inteligencia artificial tiene sus lados negativos ;-)
editar: No puede hacer esto en una función activada onFormSubmit
utilizando la substring()
javascript substring()
que mencionó. Si no está familiarizado con eso, este es el camino a seguir:
Para ejecutar un script cuando se realiza una acción en particular:
- Abra o cree una nueva hoja de cálculo.
- Haga clic en el cuadro de diálogo Hoja de cálculo sin guardar y cambie el nombre.
- Elija Herramientas> Editor de scripts y escriba la función que desea ejecutar.
- Elija Recursos> Activadores del proyecto actual. Verá un panel con el mensaje Sin desencadenantes configurado. Haga clic aquí para añadir una ahora.
- Haga clic en el enlace.
- En Ejecutar, seleccione la función que desea que ejecute el desencadenador.
- En Eventos, seleccione From Spreadsheet.
- En la siguiente lista desplegable, seleccione Al abrir, Al editar o Al enviar el formulario.
- Clic en Guardar.