表单上的Google Apps脚本提交格式化故障/修复时间

时间:2013-04-13 19:09:47

标签: formatting google-apps-script google-sheets

背景

如何:我怀疑这是Google表单(提交过程)/电子表格中的一个小故障,但可能是电子表格界面的日期转换实用程序的一部分(并且是预期的功能)。

在Google表单中的文本框中输入格式时,表单提交和响应电子表格之间存在某种通信错误,或者之前对表单数据进行预处理它被发送到电子表格。对于格式为##:## TEXT的文本字段中的数据,似乎只会发生故障,其中TEXT包含否'。'字符即可。例如:4:15 pm会重现故障,但4:15 p.m4:15 p.m.则不会。

结果:撇号字符添加到字符串的开头,当它被放入电子表格(即'4:15 pm)时,会抛出几个子字符串-systems我使用那个时间数据。这是两个屏幕截图(对于第二个不好的大小而感到抱歉):

G1 G2

我99%确定故障是由##:组合引起的。

临时修复?:真正的问题是......在开始操作时间数据之前,我怎样才能删除那个讨厌的撇号?我知道如何getValue()的单元格/范围。假设我以下列方式获得单元格的值:

var value = myRange.getValue();
// value = '4:15 pm

如何将该值处理为4:15 pm?一个简单的java函数可能是

value = value.substring(1); // Assuming "value" is a String

但是在 Spreadsheets 的Google App脚本中,我不知道如何做到这一点。

后脚本:有必要对这些数据进行后期处理,以便我不必向语言部门的大学教师讲授关于在表单中正确输入时间格式的问题。 / p>

提前感谢那些可以提供帮助的人!

2 个答案:

答案 0 :(得分:1)

如果删除电子表格单元格中的'电子表格界面,则会将此条目转换为日期对象。

这可能(或不是)对您来说是一个问题,所以当您回读数据以供其他用途时,您应该处理这个问题... 文本不同时(例如使用PM)不会发生这种情况,因为在这种情况下,电子表格不需要将其保持为字符串,因为电子表格无法将其转换为日期对象(时间值)

人工智能有其不好的一面; - )


编辑 您无法使用您提到的javascript onFormSubmitsubstring()触发的函数中执行此操作。如果您对此不熟悉,可以采取以下方式:

在执行特定操作时运行脚本:

  1. 打开或创建新的电子表格。
  2. 单击“未保存的电子表格”对话框并更改名称。
  3. 选择工具>脚本编辑器并编写您想要运行的函数。
  4. 选择资源>当前项目的触发器。你看到一个面板 消息没有设置触发器。点击此处立即添加一个。
  5. 点击链接。
  6. 在“运行”下,选择要由触发器执行的功能。
  7. 在“活动”下,选择“来自电子表格。”
  8. 从下一个下拉列表中,选择On open,On edit或On form 提交。
  9. 点击保存。
  10. 请参阅文档herehere

答案 1 :(得分:1)

  

如何在下午4:15处理该值?一个简单的java   功能可能是

     

value = value.substring(1); //假设“value”是一个String但是在   电子表格的谷歌应用程序脚本,我不知道我会怎么做。

Google Apps Scripts使用具有完全相同方法的Javascript。

value = value.substring(1);
除了第一个字符外,

应该返回所有字符。

有关Javascript子字符串的更多信息,请访问:http://www.w3schools.com/jsref/jsref_substring.asp