Gwt 与Excel相比,谷歌电子表格的日期/时间被破坏了吗?

Gwt 与Excel相比,谷歌电子表格的日期/时间被破坏了吗?,gwt,google-apps-script,Gwt,Google Apps Script,为另一篇与日期/时间相关的帖子道歉。我还没有弄明白这一点,所以欢迎发表任何评论。执行摘要:Excel可以用于处理较小的运行时间、体育赛事时间等,但工作表不能,因为您需要编写一个脚本来显示较小的时间,并且该脚本会搞乱某些内容,以便工作表不再将单元格视为稍后手动更改时间的时间 我需要的时间通常很短,大约几分钟,秒到小数点后2位。我必须在这些时间做算术,通常只是和另一个时间比较 目前,我们将所有内容都存储在Excel中,效果良好。如果在某个范围内定义自定义显示格式,然后输入时间,如2:43.02 2分

为另一篇与日期/时间相关的帖子道歉。我还没有弄明白这一点,所以欢迎发表任何评论。执行摘要:Excel可以用于处理较小的运行时间、体育赛事时间等,但工作表不能,因为您需要编写一个脚本来显示较小的时间,并且该脚本会搞乱某些内容,以便工作表不再将单元格视为稍后手动更改时间的时间

我需要的时间通常很短,大约几分钟,秒到小数点后2位。我必须在这些时间做算术,通常只是和另一个时间比较

目前,我们将所有内容都存储在Excel中,效果良好。如果在某个范围内定义自定义显示格式,然后输入时间,如2:43.02 2分钟、43.02秒,则单元格仍包含时间,Excel可以对这些时间进行算术运算

然后我上传Excel电子表格,并在工作表中打开它。Excel中没有内置格式扩展,因此我必须使用扩展函数将时间显示为2:43.02,例如,请参见下文;该函数调用setNumberFormat。在新版本的文档中,Excel时间仍然是时间,比较工作正常,一切看起来都正常

问题出在这里。只有在您将新时间手动输入到“工作表”单元格中时,所有操作才起作用。例如,如果我输入2:41.05,单元格将不再包含时间对象,所有算术运算都将中断。所以,我不能用表格代替Excel。我必须将所有内容都保存在Excel中,并偶尔上传,将表单版本保持为只读

工作表中有一些魔力,可以决定单元格是否包含日期。如果我使用内置的时间格式,那么Sheets知道这是一个时间,并且可以在手动更改时间的情况下进行算术运算。如果我使用下面的函数更改时间格式,那么这种魔力就消失了,我无法手动更改时间

function EditFormat() {
  var oldname = SpreadsheetApp.getActiveRange().getNumberFormat();
  var name = Browser.inputBox("Current format (blank = no change):\r\n"+ oldname);
  SpreadsheetApp.getActiveRange().setNumberFormat((name=="")?oldname:name);
}
问题:setNumberFormat是否已损坏?有没有更好的方法来完成这一切?我可以在脚本中做一些其他的事情来保持单元格的魔法状态吗?还是我必须回到Excel


谢谢。

这是由于一个令人遗憾的长期存在的Sheets错误,解析器在两个方面失败:

格式2:43.02未成功强制转换为时间值,但格式0:02:43.02或0:2:43.02无效。 即使如此,对于直接输入的值,百分之一秒被忽略。 这两个点适用于电子表格中的所有值,但只有第二点适用于直接输入的值。因此,解决方法是通过公式输入:

=值0:2:43.02

或者,您可以有一个格式为纯文本的输入列,然后有一个显示列,该列可以通过公式类似地转换为时间值,并且该显示列可以自定义格式。或者,您可以使用一个助手脚本,为活动单元格显示一个输入框,在该框中输入分割时间,然后创建一个如上所述的公式并将其填充到单元格中。设置的数字格式也可以内置到此脚本中


我希望这些解决方法是不必要的。

这是由于一个令人遗憾的长期存在的Sheets错误,解析器在两个方面失败:

格式2:43.02未成功强制转换为时间值,但格式0:02:43.02或0:2:43.02无效。 即使如此,对于直接输入的值,百分之一秒被忽略。 这两个点适用于电子表格中的所有值,但只有第二点适用于直接输入的值。因此,解决方法是通过公式输入:

=值0:2:43.02

或者,您可以有一个格式为纯文本的输入列,然后有一个显示列,该列可以通过公式类似地转换为时间值,并且该显示列可以自定义格式。或者,您可以使用一个助手脚本,为活动单元格显示一个输入框,在该框中输入分割时间,然后创建一个如上所述的公式并将其填充到单元格中。设置的数字格式也可以内置到此脚本中


我希望这些变通方法是不必要的。

只要试一下,就行了,谢谢-你是个明星。这是我谷歌体验的第四天,我不得不说我有点生气。我在问题追踪器中发现了一些重要的项目,这些项目持续了2年,没有任何进展。亚当-我想你不能看看相关的?我怀疑你知道一个解决办法;Sheets单元格以2位小数显示秒数,但如果我尝试将单元格值读入GAS中的日期对象,则百分之一百将丢失。只要尝试一下,它就能工作,谢谢-你是个明星。这是我谷歌体验的第四天,我不得不说我有点生气。我在问题追踪器中发现了一些重要的项目,这些项目持续了2年,没有任何进展。亚当-我想你不能看看相关的?我怀疑 你知道一个解决方法;Sheets单元格以2位小数显示秒数,但如果我尝试将单元格值读入GAS中的日期对象,则百分之一将丢失。