基本上我要做的是通过脚本将一定数量的值插入电子表格中。我设置它的方式,它分别插入每个值,调用函数x次。
假设我有4个值。我想将所有值插入到第1行,然后是第1列,第2列,第3列,第4列。我的代码中现在发生了什么,它是否只将所有值插入到第1列中,它只是覆盖了任何内容在第1列中,所以我只得到最后一个值。
var column = sheet.getDataRange().getNumColumns() + 1;
sheet.getRange(1, column).setValue(question);
如果我向getNumColumns添加+ 1,它将添加所有四个值,但是添加到第2,3,4和5列中。所以基本上,如果我不使用+ 1,则getNumColumns()从不更新,每次插入一个值时,它都保持为1.我不知道为什么会这样,并且现在已经搜索了很长时间才能得到答案。
编辑代码:
var range = sheet.getDataRange();
var data = range.getValues();
if (range.isBlank()){
var column = 1;
sheet.getRange(1, column).setValue(question);
}else{
var column = sheet.getDataRange().getNumColumns();
sheet.getRange(1, column).setValue(question);
}
答案 0 :(得分:0)
看起来您的数据范围初始化为第1列,这意味着第一次通过您添加1 + 1来获取第2列,等等。最简单的方法可能是编写if语句,以便在{{1}时},你不添加1,但每隔一段时间添加一次。如果API允许的话,更好的方法是找到一种方法将数据范围初始化为0而不是1。
编辑:再想一想,更安全的方法是检查数据范围是否为空,而不是列数为1.您可以使用getDataRange().getNumColumns() == 1
方法。