我正在开发一个Google电子表格修改网络应用程序,目前有一列格式符合这样的值"#,name"我需要使用Google Scripts以编程方式将#和名称拆分为单独的列。结果来自Forms,这就是他们需要修改的原因。我有部分工作,但我仍然坚持如何让它完全工作。以下是我到目前为止所做的事情:
output = splitColumn(initialRange.getValues()); //Initial range is the column I"m working with
m = 0;
var ids= [];
var names= [];
for(k = 0; k <= output.length; k+=2)
{
ids[m] = output[k][0];
m += 1;
}
m=0;
for(n = 1; n < output.length; n+=2)
{
names[m] = output[n][0];
m += 1;
}
schoolName = aSheet.getRange(2, i+2, aSheet.getLastRow());
schoolName.setValue(names[0]);
schoolIDs = aSheet.getRange(2, i+1, aSheet.getLastRow());
schoolIDs.setValue(ids[0]);
...
function splitColumn(range) {
var output = [];
for(var i in range) {
var split = range[i][0].split(",");
if(split.length == 1) {
output.push([split[0]]);
} else {
for(var j in split) {
output.push([split[j]]);
}
}
}
return output;
}
要查看我的总体目标,这两个屏幕截图应该显示出来。
表单中的原始电子表格: 电子表格的格式化版本:
要么修改我现有的代码以使其工作或建议采用不同的方法,我们将不胜感激。当前的问题实际上是设置值,因为它不像我正在使用的类型,并且拆分不会消除&#34;,&#34;之间的前一个空格。和#34;名称&#34;所以我的数组有[space] name otherpartofname。
答案 0 :(得分:2)
有几种方法可以执行此操作但修改现有代码,您可以split()
使用多个单个字符的字符串。无论你使用什么都被省略。
var split = range[i][0].split(', '); // including space
// ['10', 'Africa High School'] — no white space
其他选项可能是具有匹配组的正则表达式,例如/(\d{1,2}),\s([A-Z\s])
,但在这里过于苛刻,但要了解这是否更频繁地成为工作模式是一件好事。
答案 1 :(得分:0)
您可以使用.trim
删除字符串两端的空格。
var numberToPush = split[0];
var trimmedNumber = numberToPush.trim();
output.push(trimmedNumber);