我是 AppScripts (JavaScript) 的新手。
我想自动化会计表。我在 A 列中有很多帐号和标题。为了仅保留帐号,我只想保留第一个字符为数字的值。 因此我使用这段代码:
[...]
for (var k = 0; k < values.length; k++) {
var accountNumber= values[k][0].toString();
if (!isNaN(parseInt(accountNumber[0], 10))) {
var alreadyExists = allAccounts.some(function(existingValue) {
return existingValue[0] === accountNumber;
});
if (!alreadyExists) {
allAccounts.push([accountNumber, values[k][1]]);
}
}
}
[...]
我的问题是有一个帐号“1217 10”,GoogleSheets 将其检测为日期。如果我将此行转换为字符串,它将转换为“Sun Sep 24 00:44:07 GMT+00:53 1217”。这显然不是我的本意。
有办法避免这种情况吗?
借助此代码,您可以修改代码以将整个列的格式设置为纯文本:
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange("A:A");
range.setNumberFormat('@');
for (var k = 0; k < values.length; k++) {
var accountNumber = values[k][0].toString();
if (!isNaN(parseInt(accountNumber[0], 10))) {
var alreadyExists = allAccounts.some(function(existingValue) {
return existingValue[0] === accountNumber;
});
if (!alreadyExists) {
allAccounts.push([accountNumber, values[k][1]]);
}
}
}
range.setNumberFormat('General');