Google应用脚本上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
都相同。
答案 0 :(得分:12)
getDisplayValue
返回您在屏幕中看到的值,因此始终是一个字符串,而getValue
返回下面的值,因此是一个对象。如果范围中包含文本,则可以是字符串。
如果范围中包含数字或日期,则差异会更明显。特别是,如果电子表格区域设置使用逗号作为小数分隔符格式化数字,或者如果您在范围中设置自定义格式。
答案 1 :(得分:6)
为了向Henrique的解释添加更多内容,以下是我的经验示例。
我有一个列,我在IST输入时间
IST
--------
2:00 AM
当我使用
获取该列的值时var myTime = range.getValue();
实际上已经返回,
Sat Dec 30 1899 01:36:40 GMT+0530 (IST)
但是range.getDisplayValue()解决了我的问题,它返回了我输入的内容,凌晨2点。
答案 2 :(得分:0)
详细说明已接受的答案。
根据官方文档。
返回该范围内左上角单元格的显示值。的 值是一个字符串。显示的值考虑了日期,时间 和货币格式格式,包括应用的格式 自动通过电子表格的区域设置设置。空单元格返回 一个空字符串。
返回该范围内左上角单元格的值。该值可能是 类型
Number
,Boolean
,Date
或String
的类型,具体取决于 单元格的值。空单元格返回一个空字符串。
getValue
时,工作表中的有效日期对象将返回日期对象,而使用string
时将返回getDisplayValue
(尊重格式)。TRUE
时,Google表格(FALSE
,true
)中的有效布尔值将返回false
,getValue
布尔JavaScript对象,但使用时则返回字符串getDisplayValue
。当您希望使用if
条件时,这变得非常方便。如果if(sheet.getRange('A1').getValue())
包含布尔值,则可以简单地使用对象本身A1
。