Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 在工作表中插入字符串会导致插入数字_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 在工作表中插入字符串会导致插入数字

Google apps script 在工作表中插入字符串会导致插入数字,google-apps-script,google-sheets,Google Apps Script,Google Sheets,在我的谷歌应用程序脚本中,我在电子表格中添加了一行。在追加的这一行中,我试图插入一个值为“0102”的字符串,但是插入时它会转换为数字102。是否有任何方法可以使用Google Apps脚本将值插入到工作表中,该脚本不会将这些类型的数字格式化为整数,而是将它们保留为字符串?在设置其值之前,您需要将单元格格式化为纯文本。从中,这个(似乎没有文档记录的)技巧是setNumberFormat('@STRING@')。比如说, sheet.getRange("A1").setNumberFormat('

在我的谷歌应用程序脚本中,我在电子表格中添加了一行。在追加的这一行中,我试图插入一个值为“0102”的字符串,但是插入时它会转换为数字102。是否有任何方法可以使用Google Apps脚本将值插入到工作表中,该脚本不会将这些类型的数字格式化为整数,而是将它们保留为字符串?

在设置其值之前,您需要将单元格格式化为纯文本。从中,这个(似乎没有文档记录的)技巧是
setNumberFormat('@STRING@')
。比如说,

sheet.getRange("A1").setNumberFormat('@STRING@').setValue('0102');
将单元格A1格式化为纯文本,并设置值“0102”,该值将保持为字符串

不幸的是,
appendRow
,作为一种添加行和插入值的原子操作,没有留下格式化的空间。例如,您需要更详细的内容

sheet.insertRowAfter(sheet.getLastRow());
var range = sheet.getRange(sheet.getLastRow() + 1, 1, 1, 3);
range.setNumberFormats([['', '', '@STRING@']]).setValues([['Boston', 'MA', '02201']]);  

此代码添加一行,并用Boston MA 02201填充其中的前三个单元格,将邮政编码02201保留为字符串。

我想我会添加我自己的解决方案,解决这个问题

sheet.appendRow(["Boston", "MA", "'02201"])
我发现的修复方法是,如果您在前面添加一个
字符,您试图插入的值将强制它保持为字符串

sheet.appendRow(["Boston", "MA", "'02201"])

非常感谢你!感谢您展示appendRow的替代方案