我大约有20种不同的工作表,我写了一些Google脚本将所有数据组合成一个主表。现在,我希望能够排除某些工作表。我这样做的想法是将这些工作表的名称存储在变量中。到目前为止,这是我所遇到的,但是我遇到了错误?有任何想法吗?
label是我要扫描每张工作表的列的名称,masterSheetName是我要存储数据的工作表。
if (sheetName !== masterSheetName && sheetName !== skippedsheets)
行是我遇到的麻烦。并非所有跳过工作表的实例都是如此。
有没有一种方法可以对每个循环使用
?function getColVals(label, masterSheetName) {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var colValues = []
for ([i,sheet] in sheets) {
var sheetName = sheet.getSheetName();
var skippedsheets = ["HHS 1","HHS 2"];
Logger.log(skippedsheets);
Logger.log(skippedsheets[0]);
if (sheetName !== masterSheetName && sheetName !== skippedsheets) {
var colValues2 = getColValues(label,sheetName);
colValues = colValues.concat(colValues2);
}
}
return colValues;
}
谢谢你, 杰罗姆
答案 0 :(得分:0)
我发现有人写并共享了一个名为inArray的函数,它运行良好。
function getColVals(label, masterSheetName) {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var colValues = []
for ([i,sheet] in sheets) {
var sheetName = sheet.getSheetName();
var skippedsheets = ["template","intro","games"];
// Logger.log(skippedsheets);
// Logger.log(skippedsheets[0]);
if (sheetName !== masterSheetName && !(skippedsheets.inArray(sheetName))) {
var colValues2 = getColValues(label,sheetName);
colValues = colValues.concat(colValues2);
Logger.log(sheetName);
}
}
return colValues;
}
/*
* @function
* @name Object.prototype.inArray
* @description Extend Object prototype within inArray function
*
* @param {mix} needle - Search-able needle
* @param {bool} searchInKey - Search needle in keys?
*
*/
Object.defineProperty(Object.prototype, 'inArray',{
value: function(needle, searchInKey){
var object = this;
if( Object.prototype.toString.call(needle) === '[object Object]' ||
Object.prototype.toString.call(needle) === '[object Array]'){
needle = JSON.stringify(needle);
}
return Object.keys(object).some(function(key){
var value = object[key];
if( Object.prototype.toString.call(value) === '[object Object]' ||
Object.prototype.toString.call(value) === '[object Array]'){
value = JSON.stringify(value);
}
if(searchInKey){
if(value === needle || key === needle){
return true;
}
}else{
if(value === needle){
return true;
}
}
});
},
writable: true,
configurable: true,
enumerable: false
});