getNumColumns() 不更新?
getNumColumns() doesn't update?
基本上,我要做的是通过脚本将一定数量的值插入到电子表格中。按照我设置的方式,它分别插入每个值,调用函数 x 次。
假设我有 4 个值。我想将所有值插入第 1 行,然后是第 1 列、第 2 列、第 3 列、第 4 列。我的代码中现在发生了什么,它是否仅将所有值插入第 1 列,并且它只是覆盖了已经存在的任何内容在第 1 列中,所以我只得到最后一个值。
var column = sheet.getDataRange().getNumColumns() + 1;
sheet.getRange(1, column).setValue(question);
如果我将 + 1 添加到 getNumColumns,它将添加所有四个值,但添加到第 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);
}
看起来你的数据范围初始化为第 1 列,这意味着第一次通过你添加 1+1 得到第 2 列等。最简单的方法可能是写一个 if-statement 这样当getDataRange().getNumColumns() == 1
,你不加1,而是每隔一段时间加一次。如果 API 允许的话,最好找到一种方法将数据范围初始化为 0 而不是 1。
已编辑:再三考虑,更安全的方法是检查数据范围是否为空,而不是检查列数是否为 1。您可以使用 isBlank()
方法。
基本上,我要做的是通过脚本将一定数量的值插入到电子表格中。按照我设置的方式,它分别插入每个值,调用函数 x 次。
假设我有 4 个值。我想将所有值插入第 1 行,然后是第 1 列、第 2 列、第 3 列、第 4 列。我的代码中现在发生了什么,它是否仅将所有值插入第 1 列,并且它只是覆盖了已经存在的任何内容在第 1 列中,所以我只得到最后一个值。
var column = sheet.getDataRange().getNumColumns() + 1;
sheet.getRange(1, column).setValue(question);
如果我将 + 1 添加到 getNumColumns,它将添加所有四个值,但添加到第 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);
}
看起来你的数据范围初始化为第 1 列,这意味着第一次通过你添加 1+1 得到第 2 列等。最简单的方法可能是写一个 if-statement 这样当getDataRange().getNumColumns() == 1
,你不加1,而是每隔一段时间加一次。如果 API 允许的话,最好找到一种方法将数据范围初始化为 0 而不是 1。
已编辑:再三考虑,更安全的方法是检查数据范围是否为空,而不是检查列数是否为 1。您可以使用 isBlank()
方法。