google-apps-script - 日期字段的 Google App Script 事件值类型不同于 e.value 和 e.range.getValue()

标签 google-apps-script google-sheets

我刚刚开始研究 Google Apps 脚本,发现了一些让我感到困惑的东西。我有一个包含日期的单元格 A2 的电子表格。我创建了一个 onEdit() 事件处理程序。

如果我更改日期值,e.value 是一个数字,即自 1/1/1900 以来的天数。 e.range.getValue() 是一个日期。

这是一个简单的例子:

function onEdit(e) {
   // This returns a number -- number of days since 1/1/1900
   SpreadsheetApp.getUi().alert('From event: '+e.value); 

   // This returns a date
   SpreadsheetApp.getUi().alert('From selected range: '+SpreadsheetApp.getActiveSheet().getRange(2, 1).getValue()); 

   // This also returns a date
   SpreadsheetApp.getUi().alert('From event range: '+e.range.getValue()); 
}

我确定这是有原因的,我只是想念它。有人可以给我线索吗?谢谢!

最佳答案

e.Value

有差documentation关于e.value,它说的是:

New cell value after the edit. Only available if the edited range is a single cell.

真实values of dates in spreadsheets是它们的序列号,从 1/1/1900 开始。只有 formattind 能让日期看起来像电子表格中的日期。所以,我想,这是一个很好的特性,我们可以使用 e.value

访问这个值

range.getValue()

more info关于这个函数,它给出了:

Number, Boolean, Date, or String depending on the value of the cell

所以它工作正常,给出一个日期。但是 Google Apps 使用的是 treats dates differently 的 javascript .这可能会导致对日期的理解出现问题。

关于google-apps-script - 日期字段的 Google App Script 事件值类型不同于 e.value 和 e.range.getValue(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38732599/

相关文章:

google-apps-script - 谷歌电子表格编辑器 : update sparse cells

javascript - 使用谷歌脚本对谷歌表格中的数据进行排序(使用自定义排序顺序)

google-apps-script - 列出并复制 Google 表格文件的特定命名版本

html - 使用 MailApp.sendEmail 脚本用谷歌表格字段填充 HTML 正文

google-apps-script - 如何使用应用程序脚本动态调整谷歌表格的行宽和列宽?

google-apps-script - 如何修复 Google Sheets RTL?

google-apps-script - Google 电子表格脚本 : append row in plain text

javascript - 在 Google Apps 脚本中解码 JWT

firebase - 使用 Google AppS 脚本在 Firebase 中创建新用户

javascript - 从 gmail 线程中的 ZIP 文件中提取 CSV 并将数据写入 Google 表格