Google apps script 如何根据列条件将工作表中的行附加到GoogleSheets中的另一个工作表
有人知道如何在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”}),但我试图追加的行是由用户输入的 我需要做的是查看哪一行在第
- 现在,工作表1有一列名为:“总计”
- 现在,我要做的是查看第1页中的“总计”列是否为空
- 如果是空的,那么我应该将第1页中包含空列的整行复制到第2页
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]索引
。明白了吗?不管怎样,下面的答案都应该是有效的。@如果您以后碰巧使用下面的脚本,请告诉我。是的。确实有效。谢谢大家。