我一直在Google表格中通过方法getValues
和setValues
使用Apps脚本。数组中返回的值会被进一步处理,它们将是JS字符串,并在单元格中设置为Text。
使用setValues
后,如果字符串允许,则将单元格内部的值解释为(特殊格式)数字,即使数组内部的值为JS字符串,单元格内部的值实际上也是数字。>
我们可以通过脚本告诉我们这些字符串值在单元格中设置为“文本”吗?
以下测试代码初始化了一个字符串数组,但是当我检查ell值时,它们实际上是数字:
function setValuesTest() {
var LN_DEST = 11;
var ss = SpreadsheetApp.getActive();
var currentSheet = ss.getActiveSheet();
var valuesAr = [];
var setAr = [];
valuesAr[0] = ['18:20', '3', '27/05/19', '27/5/2019', '01970123456'];
valuesAr[1] = ['3.5', '3,5', '27/05/19', '2019/5/20', '01970123456'];
valuesAr[2] = ['$3.5', '£3.5', '£2,5', '2,000,000', '2.000.000'];
for (var i = 0; i < valuesAr.length; i++) {
setAr[0] = valuesAr[i];
currentSheet.getRange(LN_DEST + i, 1, 1, setAr[0].length).setValues(setAr);
}
ss.toast('Complete!', 'END', -1);
}
我想在单元格中将这些值作为文本保留字面上的字符。因此,如果数组中有27/05/19,则文本27/10/19而不是数字,或者单元格文本01970123456而不是数字1970123456。如果可能的话,我宁愿避免使用“ ',因为我不确定进一步getValues
和SetValues
方法在单元格上的使用会产生什么影响。 (此行为的另一个缺点是,这种数据解释似乎取决于语言环境系统。)
答案 0 :(得分:1)
'
来放置值。如果我的理解正确,那么如何使用setNumberFormat()
?请认为这只是几个答案之一。
请按如下所示修改脚本。
从:currentSheet.getRange(LN_DEST + i, 1, 1, setAr[0].length).setValues(setAr);
至:
currentSheet.getRange(LN_DEST + i, 1, 1, setAr[0].length).setNumberFormat("@").setValues(setAr);
如果我误解了您的问题,而这不是您想要的方向,我深表歉意。