我可以使用getValues()获取范围值,并通过在Google App Script中声明以下变量将其放入字符串中
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Test");
var range_input = ss.getRange("A1:A").getValues();
然而,我意识到我的字符串中有很多逗号可能来自所有空调。
例如,如果值遵循
================
Spreadsheet("Test") Values
A1=abc
A2=def
A3=
A4=
A5=
A6=uvw
A7=xyz
================
如果我做msgBox,它会得到类似下面的内容。
Browser.msgBox(range_input) // results = abc,def,,,,uvw,xyz,,,,,,,,,,,
有没有办法删除尾随的逗号,所以我得到类似下面的内容? (即忽略空单元格)
Browser.msgBox(range_input) // results = abc,def,uvw,xyz
答案 0 :(得分:15)
您也可以使用filter()
。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Test");
var range_input = ss.getRange("A1:A").getValues();
var filtered_input = range_input.filter(String);
答案 1 :(得分:9)
这个样本怎么样?
示例:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Test");
var range_input = ss.getRange("A1:A").getValues();
var result = [i for each (i in range_input)if (isNaN(i))];
Browser.msgBox(result)
答案 2 :(得分:1)
未经过效率测试,但只需删除多个,
,就可以使用正则表达式:
const a=[['abc'],['def'],[''],[''],[''],['xyz'],['']];//simulate getValues()
const out = a.join(',').replace(/,+(?=,)|,*$/g,'') //'abc,def,xyz'
const out2 = a.join('«').replace(/«+$/,'').split(/«+/) //flattened
console.log({out, out2})