Javascript googlesheet复印件&;按列名粘贴筛选的数据
您好,这很好&我已经按照我的要求进行了编辑,但我在这里遇到的问题是,我想从“工作表”和“更新”工作表中按标题名称(行1)复制列,而不是复制和粘贴整个数据 这里有几个列标题名称:EmployeeID、电子邮件、日期、员工姓名、电话Javascript googlesheet复印件&;按列名粘贴筛选的数据,javascript,google-apps-script,google-sheets,filter,google-sheets-api,Javascript,Google Apps Script,Google Sheets,Filter,Google Sheets Api,您好,这很好&我已经按照我的要求进行了编辑,但我在这里遇到的问题是,我想从“工作表”和“更新”工作表中按标题名称(行1)复制列,而不是复制和粘贴整个数据 这里有几个列标题名称:EmployeeID、电子邮件、日期、员工姓名、电话 toFilter(); var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet1 = spreadsheet.getSheetByName("Worksheet"); var sheet2 =
toFilter();
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = spreadsheet.getSheetByName("Worksheet");
var sheet2 = spreadsheet.getSheetByName("Update");
var data = sheet1.getDataRange().getValues();
var array = [];
for (var i = 0; i < data.length; i++){
if(sheet1.isRowHiddenByFilter(i+1)==false){
array.push(data[i]);
}
}
sheet2.getRange(sheet2.getLastRow()+1, 1, array.length, array[0].length).setValues(array);
}
toFilter();
var电子表格=SpreadsheetApp.getActiveSpreadsheet();
var sheet1=电子表格.getSheetByName(“工作表”);
var sheet2=电子表格.getSheetByName(“更新”);
var data=sheet1.getDataRange().getValues();
var数组=[];
对于(变量i=0;i
请帮帮我 试试这样的方法: //员工ID、电子邮件、日期、员工姓名、电话
function toFilter() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = spreadsheet.getSheetByName("Worksheet");
var sheet2 = spreadsheet.getSheetByName("Update");
var hA=sheet1.getRange(1,1,1,sh.getLastColumn()).getValues()[0];
var hObj={};
hA.forEach(function(e,i){hObj[e]=i;});
var data = sheet1.getDataRange().getValues();
var array = [];
for (var i = 0; i < data.length; i++){
if(!sheet1.isRowHiddenByFilter(i+1)){
array.push([data[i][hObj['EmployeeID']],data[i][hObj['Email']],data[i][hObj['Date']]...]);
}
}
sheet2.getRange(sheet2.getLastRow()+1, 1, array.length, array[0].length).setValues(array);
}
函数toFilter(){
var电子表格=SpreadsheetApp.getActiveSpreadsheet();
var sheet1=电子表格.getSheetByName(“工作表”);
var sheet2=电子表格.getSheetByName(“更新”);
var hA=sheet1.getRange(1,1,1,sh.getLastColumn()).getValues()[0];
var hObj={};
hA.forEach(函数(e,i){hObj[e]=i;});
var data=sheet1.getDataRange().getValues();
var数组=[];
对于(变量i=0;i
如果您使用数组公式,请尝试以下方法:
function toFilter() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = spreadsheet.getSheetByName("Worksheet");
var sheet2 = spreadsheet.getSheetByName("Update");
var hA=sheet1.getRange(1,1,1,sh.getLastColumn()).getValues()[0];
var hObj={};
var col='enter column number here'
hA.forEach(function(e,i){hObj[e]=i;});
var data = sheet1.getRange(1,1,getColumnHeight(col,sheet1,spreadsheet),sheet1.getLastRow()).getValues();
var array = [];
for (var i = 0; i < data.length; i++){
if(!sheet1.isRowHiddenByFilter(i+1)){
array.push([data[i][hObj['EmployeeID']],data[i][hObj['Email']],data[i][hObj['Date']]...]);
}
}
sheet2.getRange(sheet2.getLastRow()+1, 1, array.length, array[0].length).setValues(array);
}
function getColumnHeight(col,sh,ss){
var ss=ss||SpreadsheetApp.getActive();
var sh=sh||ss.getActiveSheet();
var col=col||sh.getActiveCell().getColumn();
var v=sh.getRange(1,col,sh.getLastRow(),1).getValues().map(function(r){return r[0];});
var s=0;
var h=0;
v.forEach(function(e,i){if(e==''){s++;}else{s=0;}h++;});
return (h-s);
}
函数toFilter(){
var电子表格=SpreadsheetApp.getActiveSpreadsheet();
var sheet1=电子表格.getSheetByName(“工作表”);
var sheet2=电子表格.getSheetByName(“更新”);
var hA=sheet1.getRange(1,1,1,sh.getLastColumn()).getValues()[0];
var hObj={};
var col='在此处输入列号'
hA.forEach(函数(e,i){hObj[e]=i;});
var data=sheet1.getRange(1,1,getColumnHeight(col,sheet1,电子表格),sheet1.getLastRow()).getValues();
var数组=[];
对于(变量i=0;i
尝试以下方法:
//员工ID、电子邮件、日期、员工姓名、电话
function toFilter() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = spreadsheet.getSheetByName("Worksheet");
var sheet2 = spreadsheet.getSheetByName("Update");
var hA=sheet1.getRange(1,1,1,sh.getLastColumn()).getValues()[0];
var hObj={};
hA.forEach(function(e,i){hObj[e]=i;});
var data = sheet1.getDataRange().getValues();
var array = [];
for (var i = 0; i < data.length; i++){
if(!sheet1.isRowHiddenByFilter(i+1)){
array.push([data[i][hObj['EmployeeID']],data[i][hObj['Email']],data[i][hObj['Date']]...]);
}
}
sheet2.getRange(sheet2.getLastRow()+1, 1, array.length, array[0].length).setValues(array);
}
函数toFilter(){
var电子表格=SpreadsheetApp.getActiveSpreadsheet();
var sheet1=电子表格.getSheetByName(“工作表”);
var sheet2=电子表格.getSheetByName(“更新”);
var hA=sheet1.getRange(1,1,1,sh.getLastColumn()).getValues()[0];
var hObj={};
hA.forEach(函数(e,i){hObj[e]=i;});
var data=sheet1.getDataRange().getValues();
var数组=[];
对于(变量i=0;i
如果您使用数组公式,请尝试以下方法:
function toFilter() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = spreadsheet.getSheetByName("Worksheet");
var sheet2 = spreadsheet.getSheetByName("Update");
var hA=sheet1.getRange(1,1,1,sh.getLastColumn()).getValues()[0];
var hObj={};
var col='enter column number here'
hA.forEach(function(e,i){hObj[e]=i;});
var data = sheet1.getRange(1,1,getColumnHeight(col,sheet1,spreadsheet),sheet1.getLastRow()).getValues();
var array = [];
for (var i = 0; i < data.length; i++){
if(!sheet1.isRowHiddenByFilter(i+1)){
array.push([data[i][hObj['EmployeeID']],data[i][hObj['Email']],data[i][hObj['Date']]...]);
}
}
sheet2.getRange(sheet2.getLastRow()+1, 1, array.length, array[0].length).setValues(array);
}
function getColumnHeight(col,sh,ss){
var ss=ss||SpreadsheetApp.getActive();
var sh=sh||ss.getActiveSheet();
var col=col||sh.getActiveCell().getColumn();
var v=sh.getRange(1,col,sh.getLastRow(),1).getValues().map(function(r){return r[0];});
var s=0;
var h=0;
v.forEach(function(e,i){if(e==''){s++;}else{s=0;}h++;});
return (h-s);
}
函数toFilter(){
var电子表格=SpreadsheetApp.getActiveSpreadsheet();
var sheet1=电子表格.getSheetByName(“工作表”);
var sheet2=电子表格.getSheetByName(“更新”);
var hA=sheet1.getRange(1,1,1,sh.getLastColumn()).getValues()[0];
var hObj={};
var col='在此处输入列号'
hA.forEach(函数(e,i){hObj[e]=i;});
var data=sheet1.getRange(1,1,getColumnHeight(col,sheet1,电子表格),sheet1.getLastRow()).getValues();
var数组=[];
对于(变量i=0;i
非常有效,谢谢!但当我将数组公式放入工作表列A&B=ARRAYFORMULA(IF(E2:E=”“,“”,IF(COUNTIF)(E2:2,E2:E)>1,“Yes”,“No”
时,执行脚本需要2分钟以上,但如果我将相同的公式放入不带数组=IF(E2:E=“”,“”,IF(COUNTIF)(E2:2,E2:E)>1,“Yes”,“No”
它在10秒内执行为什么?如何让它执行得更快?可能是因为数组函数弄乱了getDataRange()中的lastRow()计算。我有一个ColumnHeight()我可以使用的函数。你能告诉我哪列不包含forrmulas吗?我们可以试试看它是否有用。A列和B列包含上述公式,分别在E列和K列中查找重复项,S列包含涉及K到R范围的自定义自定义自定义项。我不知道是否需要此信息-我不想c列中的任何一列opy有公式扫描您共享工作表的图像吗?这是工作表:黄色格式的列包含公式。非常感谢!但是当我将数组公式放入工作表列A&B=ARRAYFORMULA(IF(E2:E=“”,”,IF(COUNTIF(E2:2,E2:E)>1“是”,“否”时,执行脚本需要2分钟以上的时间
但是如果我把相同的公式放在不带数组的地方=if(E2:E=“”,”,if(COUNTIF(E2:2,E2:E)>1,“是”,“否”
它会在10秒内执行