【问题标题】:Difference between getValue() and getDisplayValue() on google app script谷歌应用脚​​本上的 getValue() 和 getDisplayValue() 之间的区别
【发布时间】:2016-01-09 08:39:10
【问题描述】:

Google Apps 脚本上的range.getDisplayValue() 和range.getValue() 有什么区别?

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var val1 = sheet.getRange(7,5).getDisplayValue();
var val2 = sheet.getRange(7,5).getValue();

Val1 和 Val2 都是一样的。

【问题讨论】:

  • 大多数应用程序在处理技术和“真实”信息时使用值和显示值。例如,您可以有一个显示值为“斯里兰卡”和值为“94”的国家/地区拨号代码字段。

标签: google-apps-script google-sheets


【解决方案1】:

getDisplayValue 返回您在屏幕上看到的值,因此总是一个字符串,而getValue 返回下面的值,因此是一个对象。如果范围中有文本,则它可能是一个字符串。

如果范围中有数字或日期,则差异会更加明显。特别是如果电子表格区域设置使用逗号将数字格式化为小数分隔符,或者您在范围中设置了自定义格式。

【讨论】:

    【解决方案2】:

    为了在 Henrique 的解释中添加更多内容,以下是我的经验示例。

    我有一列在 IST 中输入时间

    IST     
    --------
    2:00 AM 
    

    当我得到该列的值时,

    var myTime = range.getValue();
    

    实际返回的,

    Sat Dec 30 1899 01:36:40 GMT+0530 (IST)
    

    但是 range.getDisplayValue() 解决了我的问题,它返回了我输入的内容,凌晨 2:00。

    【讨论】:

      【解决方案3】:

      详细说明已接受的答案。

      根据官方文档。

      getDisplayValue():

      返回范围内左上角单元格的显示值。这 值是一个字符串。显示的值考虑了日期、时间 和货币格式格式,包括应用的格式 由电子表格的区域设置自动生成。空单元格返回 一个空字符串。

      getValue():

      返回范围内左上角单元格的值。该值可能是 Number、Boolean、Date 或 String 类型取决于 单元格的值。空单元格返回一个空字符串。

      stackoverflow 中的常见问题 - 用例:

      • 工作表中的有效日期对象在使用 getValue 时将返回一个日期对象,但在使用 getDisplayValue 时返回一个 string(尊重格式)。
      • 在使用getValue 时,Google 表格中的有效布尔值(TRUE、FALSE)将返回 true、false 布尔 JavaScript 对象,但在使用 getDisplayValue 时返回字符串。当您希望使用if 条件时,这将变得非常方便。如果A1 包含布尔值,您可以简单地使用对象本身if(sheet.getRange('A1').getValue())。

      【讨论】:

        猜你喜欢
        • 2021-02-26
        • 1970-01-01
        • 2012-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多