Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Javascript 基于筛选条件的Google脚本导入数据_Javascript_Google Apps Script_Google Sheets_Import - Fatal编程技术网

Javascript 基于筛选条件的Google脚本导入数据

Javascript 基于筛选条件的Google脚本导入数据,javascript,google-apps-script,google-sheets,import,Javascript,Google Apps Script,Google Sheets,Import,//我正在尝试根据项目状态导入特定团队成员的数据。如果只拉入1个选项卡,而不是全部12个选项卡,代码运行良好。此外,如果您能够提供有关如何匹配列标题的详细信息,数据有时可能会因工作表而异。数据将处于触发器和更新状态,但数据不应覆盖仍符合代码中设置的条件的数据。提前感谢您的帮助 数据表: 目标页: 函数myFunction(){ var sss=SpreadsheetApp.openById('1X_nbwq1m9ibxvyxhy2wctthanvpfplaojwgbkbjimq');//替换为源

//我正在尝试根据项目状态导入特定团队成员的数据。如果只拉入1个选项卡,而不是全部12个选项卡,代码运行良好。此外,如果您能够提供有关如何匹配列标题的详细信息,数据有时可能会因工作表而异。数据将处于触发器和更新状态,但数据不应覆盖仍符合代码中设置的条件的数据。提前感谢您的帮助

数据表:

目标页:

函数myFunction(){
var sss=SpreadsheetApp.openById('1X_nbwq1m9ibxvyxhy2wctthanvpfplaojwgbkbjimq');//替换为源ID
var ss1=sss.getSheetByName('一月');//替换为源工作表选项卡名称
var ss=sss.getSheetByName('二月');
var ss2=sss.getSheetByName('March');
var ss3=sss.getSheetByName('April');
var ss4=sss.getSheetByName('May');
var ss5=sss.getSheetByName('June');
var ss6=sss.getSheetByName('July');
var ss7=sss.getSheetByName('August');
var ss8=sss.getSheetByName(“九月”);
var ss9=sss.getSheetByName(“十月”);
var ss10=sss.getSheetByName('11月');
var ss11=sss.getSheetByName('December');
var range=ss.getRange('A:Z');//指定要复制的范围
var range=ss.getRange('A:Z');//指定要复制的范围
var range1=ss.getRange('A:Z');//指定要复制的范围
var range2=ss2.getRange('A:Z');//指定要复制的范围
var range3=ss3.getRange('A:Z');//指定要复制的范围
var range4=ss4.getRange('A:Z');//指定要复制的范围
var range5=ss5.getRange('A:Z');//指定要复制的范围
var range6=ss6.getRange('A:Z');//指定要复制的范围
var range7=ss7.getRange('A:Z');//指定要复制的范围
var range8=ss8.getRange('A:Z');//指定要复制的范围
var range9=ss9.getRange('A:Z');//指定要复制的范围
var range10=ss10.getRange('A:Z');//指定要复制的范围
var range11=ss11.getRange('A:Z');//指定要复制的范围
var rawData=range.getValues()//从电子表格1获取值
var data=[]//筛选后的数据将存储在此数组中
对于(var i=0;i0?2:1),1,numRows,numCols).setValues(SData1);
lastRow=ts.getLastRow();
numRows=范围.length;
numCols=范围[0]。长度;
ts.getRange(lastRow+2,1,numRows,numCols).setValues(SData2);//我们使用lastRow变量在它停止的地方继续。我添加了+2以在每个数据节之间放置一个空格,这个数字可以更改为+1以删除空格。
lastRow=ts.getLastRow();
numRows=范围11.5米长;
numCols=range11[0]。长度;
getRange(lastRow+2,1,numRows,numCols).setValues(SData3);
}

您能否举例说明您希望如何将数据复制到目标工作表中?现在,您只使用变量
范围
,而忽略所有定义的
范围
。您还可以使用
for
循环来更改所有这些变量?是的,正确。我只想为Bob导入已完成的项目。另外,我想设置标签,这样数据就会被提取。输入正确的对应列,无论顺序如何。你能举例说明如何做到这一点吗?谢谢请提供一个示例,说明您希望如何将代码复制到目标工作表中。否则,我无法告诉您希望数据如何布局。请参阅目标工作表上的选项卡“导入数据示例”,作为我希望数据如何布局或目标工作表的示例。您可以看到从中提取数据的图纸都具有不同的布局。由于所有的工作表都有不同的布局,我想使用匹配标题或标签来输入数据。目标表:1。标签很重要。如果您不标记代码所用的语言,该语言的专家甚至不会看到您的问题。2.使用清晰标记的屏幕截图显示您希望如何塑造数据。最好避免使用外部链接(文档链接),因为它会清楚地暴露您的电子邮件地址。3.清楚地解释你迄今为止为实现目标所做的工作。
function myFunction() {
var sss = SpreadsheetApp.openById('1X_NBWq1m9iBxvYXhy2wcttHanvPFPlAOJWgbbKbJimQ'); //replace with source ID
var ss1 = sss.getSheetByName('January'); //replace with source Sheet tab name
  var ss = sss.getSheetByName('February');
    var ss2 = sss.getSheetByName('March');
  var ss3 = sss.getSheetByName('April');
  var ss4 = sss.getSheetByName('May');
  var ss5 = sss.getSheetByName('June');
  var ss6 = sss.getSheetByName('July');
  var ss7 = sss.getSheetByName('August');
  var ss8 = sss.getSheetByName('September');
  var ss9 = sss.getSheetByName('October');
  var ss10 = sss.getSheetByName('November');
  var ss11 = sss.getSheetByName('December');

var range = ss.getRange('A:Z');      //assign the range you want to copy
  var range = ss.getRange('A:Z');      //assign the range you want to copy
  var range1 = ss.getRange('A:Z');      //assign the range you want to copy
  var range2 = ss2.getRange('A:Z');      //assign the range you want to copy
  var range3 = ss3.getRange('A:Z');      //assign the range you want to copy
  var range4 = ss4.getRange('A:Z');      //assign the range you want to copy
  var range5 = ss5.getRange('A:Z');      //assign the range you want to copy
  var range6 = ss6.getRange('A:Z');      //assign the range you want to copy
  var range7 = ss7.getRange('A:Z');      //assign the range you want to copy
  var range8 = ss8.getRange('A:Z');      //assign the range you want to copy
  var range9 = ss9.getRange('A:Z');      //assign the range you want to copy
  var range10 = ss10.getRange('A:Z');      //assign the range you want to copy
  var range11 = ss11.getRange('A:Z');      //assign the range you want to copy
var rawData = range.getValues()     // get value from spreadsheet 1
var data = []                       // Filtered Data will be stored in this array
for (var i = 0; i< rawData.length ; i++){
if(rawData[i][1] == "Completed")    // Check to see if column 6 says completed if not skip it
  if(rawData[i][2] == "Bob")
{
data.push(rawData[i])
}
}

var tss = SpreadsheetApp.openById('1oFRs48JHCrH82msFkGrZ8iqDpyAdXww1e1EZYf6FRx8'); //replace with destination ID
var ts = tss.getSheetByName('Sheet1'); //destination Sheet tab name
ts.getRange(ts.getLastRow()+1, 1, data.length, data[0].length).setValues(data);

   var lastRow = ts.getLastRow();
  var numRows = range.length;
  var numCols = range[0].length;
  ts.getRange(lastRow+(lastRow > 0 ? 2 : 1), 1, numRows, numCols).setValues(SData1);

  lastRow = ts.getLastRow();
  numRows = range.length;
  numCols = range[0].length;
  ts.getRange(lastRow+2, 1, numRows, numCols).setValues(SData2); // instead of the row being 1 we use the lastRow variable to continue where it left off. I added +2 to put a space between each data section, this number can be changed to +1 to remove the space.

  lastRow = ts.getLastRow();
  numRows = range11.length;
  numCols = range11[0].length;
  ts.getRange(lastRow+2, 1, numRows, numCols).setValues(SData3);

}