我昨天有问题。我决定将其中一个电子表格移到新的Google Spreadsheets,它开始出现问题。
在旧的Google Spreadsheets中,一切正常:
var sh = SpreadsheetApp.getActiveSpreadsheet();
sh.getSheets()[0].getRange("A1").setValue(1);`
应将值设置为“1”,但始终将其设置为字符串“1.00000000000000”
为了确保它是我使用getSheetValues
的字符串,不幸的是它确认了我的理论(它在脚本编辑器中显示类型为“String”)。
当我手动在电子表格中键入数字时,函数getSheetValues
将返回Integer。
我已尝试使用setValue(parseInt(1))
或setValue(Number(1))
来设置setValue。
这是Google Apps脚本中的错误还是我的想法中存在一些错误?
答案 0 :(得分:1)
当我在新电子表格(新版本)中运行此功能时,我得到以下日志结果......
function test(){
var sh = SpreadsheetApp.getActiveSpreadsheet();
sh.getSheets()[0].getRange("C1").setValue(1);
Logger.log( typeof(sh.getSheets()[0].getRange("C1").getValue()));
}
但是如果我将单元格中的格式设置为'纯文本'那么显然我会得到一个字符串......没有什么异常我猜......
编辑这似乎仅在电子表格设置设置为美国时有用,我尝试了其他格式并获得奇怪的结果 ...请参阅下面的评论。