Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何根据列条件将工作表中的行附加到GoogleSheets中的另一个工作表_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 如何根据列条件将工作表中的行附加到GoogleSheets中的另一个工作表

Google apps script 如何根据列条件将工作表中的行附加到GoogleSheets中的另一个工作表,google-apps-script,google-sheets,Google Apps Script,Google Sheets,有人知道如何在Googlesheets中将一行从一张工作表转换/复制到另一张工作表吗 下面是我想做的:所以我有一个谷歌电子表格文件。它有两个选项卡/工作表 现在,工作表1有一列名为:“总计” 现在,我要做的是查看第1页中的“总计”列是否为空 如果是空的,那么我应该将第1页中包含空列的整行复制到第2页 我知道我必须使用appendRow()函数。但这需要硬编码的值。类似这样的内容:sheets.appendRow({“a”,“b”}),但我试图追加的行是由用户输入的 我需要做的是查看哪一行在第

有人知道如何在Googlesheets中将一行从一张工作表转换/复制到另一张工作表吗

下面是我想做的:所以我有一个谷歌电子表格文件。它有两个选项卡/工作表

  • 现在,工作表1有一列名为:“总计”
  • 现在,我要做的是查看第1页中的“总计”列是否为空
  • 如果是空的,那么我应该将第1页中包含空列的整行复制到第2页
我知道我必须使用appendRow()函数。但这需要硬编码的值。类似这样的内容:sheets.appendRow({“a”,“b”}),但我试图追加的行是由用户输入的

我需要做的是查看哪一行在第I列或第8列有空单元格。

然后把整行都复制过来。到目前为止,我能够得到第一列有空列的行,但是我不知道如何追加/复制它

我将非常感谢你在这方面的意见。因为我还没有找到任何与我需要的东西相关的资源

这是我到目前为止的代码

 function insertRecord() {
 var sss = SpreadsheetApp.getActiveSpreadsheet().getSheets()[1];
 var values = sss.getDataRange().getValues();
 var getRangeRow2 = sss.getDataRange().getRow()[5];
 var getRangeCol2 = sss.getDataRange().getColumn()[1];
 var placeHolder = sss.insertRowsBefore(5, 1);

 var ss = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];

 var values = ss.getDataRange().getValues();
 var n = 4;
 var c = 8;
 var getRangeRow = ss.getDataRange().getRow()[n];
 var getRangeCol = ss.getDataRange().getColumn()[c];


 for(n=4;n<values.length;n++){  // Loops through all values in column 8
 var column = values[n][c];   // n represents my rows in the getSheets()[0] // number 8 is the column 8.
 var row = values[n]; 
 var col = values[c];
 if(column == null)
 {  // Currently this will get me the rows where the column I has no value in it. This is what its supposed to do. << I am happy with this.
   if(placeHolder)
   {
     placeHolder = ss.getDataRange(getRangeRow, getRangeCol).copyTo(getRangeRow2, getRangeCol2);
   // NOTE: SORRY NOT YELLING. BUT THIS PART IS THE PROBLEM I AM HAVING. IT 
   // WON'T WORK. IT WONT COPY THE ROW TO THE OTHER SHEET.
   }
Logger.log(row, col);
  }
}
}
函数insertRecord(){
var sss=SpreadsheetApp.getActiveSpreadsheet().getSheets()[1];
var values=sss.getDataRange().getValues();
var getRangeRow2=sss.getDataRange().getRow()[5];
var getRangeCol2=sss.getDataRange().getColumn()[1];
var占位符=sss.insertRowsBefore(5,1);
var ss=SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var values=ss.getDataRange().getValues();
var n=4;
var c=8;
var getRangeRow=ss.getDataRange().getRow()[n];
var getRangeCol=ss.getDataRange().getColumn()[c];

对于(n=4;nAppend行不需要硬编码的值,可以从Sheet1中获取这些值。 我将继续从Sheet1中获取所有行,并复制Sheet2中第8列为空的行。 以下是一个工作片段:

function insertRecord() {
   var sheet_2 = SpreadsheetApp.getActiveSpreadsheet().getSheets()[1];

   var sheet_1 = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];

   var rows = sheet_1.getDataRange().getValues(); // Gets the rows with data

   rows
   .filter(row => row[8] == '') // Gets the rows that have the 8th col empty
   .map(row_w_empty8col => sheet_2.appendRow(row_w_empty8col)); // Appends the rows to the second sheet

}
参考资料:

追加行不需要硬编码值,您可以从表1中获取这些值。 我将继续从Sheet1中获取所有行,并复制Sheet2中第8列为空的行。 以下是一个工作片段:

function insertRecord() {
   var sheet_2 = SpreadsheetApp.getActiveSpreadsheet().getSheets()[1];

   var sheet_1 = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];

   var rows = sheet_1.getDataRange().getValues(); // Gets the rows with data

   rows
   .filter(row => row[8] == '') // Gets the rows that have the 8th col empty
   .map(row_w_empty8col => sheet_2.appendRow(row_w_empty8col)); // Appends the rows to the second sheet

}
参考资料:

insertRows有什么用?它与问题有什么关系?另请参见
getRow()的内容
return?@TheMaster问得好。这样做的目的是在页面顶部的第一条记录之前插入一个空行。就像在第4行的第一条记录之后一样,我想要一个空行,在那里我可以插入第1页的新记录。我希望我没有把这搞砸。还有getRow()[5]goes,工作表1上的第一条记录,也就是第一个选项卡,从第5行开始。因此,我想从该行开始抓取记录。返回
整数
,而不是
数组
。因此它不能用
[5]索引
。明白了吗?下面的答案无论如何都应该有效。@如果您以后碰巧使用下面的脚本,请告诉我。是的。它确实有效。谢谢大家。insertRows有什么用?它与问题有什么关系?另请参阅
getRow()的内容
return?@TheMaster问得好。这样做的目的是在页面顶部的第一条记录之前插入一个空行。就像在第4行的第一条记录之后一样,我想要一个空行,在那里我可以插入第1页的新记录。我希望我没有把这搞砸。还有getRow()[5]goes,工作表1上的第一条记录,也就是第一个选项卡,从第5行开始。因此,我想从该行开始抓取记录。返回
整数
,而不是
数组
。因此它不能用
[5]索引
。明白了吗?不管怎样,下面的答案都应该是有效的。@如果您以后碰巧使用下面的脚本,请告诉我。是的。确实有效。谢谢大家。