Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.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 Sheets行不包含字符串,则删除或筛选该行_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 如果Google Sheets行不包含字符串,则删除或筛选该行

Javascript 如果Google Sheets行不包含字符串,则删除或筛选该行,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我有一个包含重复行的电子表格。重复行不包含字符串“All stories”(有时写为“All stories”或“All stories”)的某些变体 我想删除或筛选不包含短语“所有故事”的行 到目前为止,我已经编写了一个脚本,它确实删除了包含短语“所有故事”的行 但是,如果行中不包含短语,我还没有弄清楚如何删除这些行 以下是我目前掌握的情况: function readRows() { var sheet = SpreadsheetApp.getActiveSheet(); var row

我有一个包含重复行的电子表格。重复行不包含字符串“All stories”(有时写为“All stories”或“All stories”)的某些变体

我想删除或筛选不包含短语“所有故事”的行

到目前为止,我已经编写了一个脚本,它确实删除了包含短语“所有故事”的行

但是,如果行中不包含短语,我还没有弄清楚如何删除这些行

以下是我目前掌握的情况:

function readRows() {
 var sheet = SpreadsheetApp.getActiveSheet();
 var rows = sheet.getDataRange();
 var numRows = rows.getNumRows();
 var values = rows.getValues();

 var rowsDeleted = 0;
 for (var i = 0; i <= numRows - 1; i++) {

 var row = values[i];

 if (row[2].indexOf("(all stories)") > -1) {
 sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
 rowsDeleted++;
 } else if (row[2].indexOf("(All Stories)") > -1) {
 sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
 rowsDeleted++;
 } else if (row[2].indexOf("(All stories)") > -1) {
 sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
 rowsDeleted++;
 }
 }
};
函数readRows(){
var sheet=SpreadsheetApp.getActiveSheet();
var rows=sheet.getDataRange();
var numRows=rows.getNumRows();
var values=rows.getValues();
var rowsDeleted=0;
对于(变量i=0;i-1){
sheet.deleteRow((parseInt(i)+1)-删除行);
行删除++;
}else if(行[2].indexOf(“(所有故事)”)>-1){
sheet.deleteRow((parseInt(i)+1)-删除行);
行删除++;
}else if(行[2].indexOf(“(所有故事)”)>-1){
sheet.deleteRow((parseInt(i)+1)-删除行);
行删除++;
}
}
};
没有错误消息。它工作正常,只是不是正确的脚本!如何确保脚本删除不包含字符串的行


谢谢:)

您不需要检查索引是否高于-1,只需要检查索引是否正好是-1,这意味着该行不包含字符串

如果先将行转换为小写,则也不需要执行3种不同的检查

function readRows() {
    var sheet = SpreadsheetApp.getActiveSheet();
    var rows = sheet.getDataRange();
    var numRows = rows.getNumRows();
    var values = rows.getValues();

    var rowsDeleted = 0;
    for (var i = 0; i <= numRows - 1; i++) {
        var row = values[i];

        if (row[2].toLowerCase().indexOf("(all stories)") == -1) {
            sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
            rowsDeleted++;
        } 
    }
};
函数readRows(){
var sheet=SpreadsheetApp.getActiveSheet();
var rows=sheet.getDataRange();
var numRows=rows.getNumRows();
var values=rows.getValues();
var rowsDeleted=0;

for(var i=0;谢谢!这非常有效。我试图排除第一行,但是:sheet.getDataRange(C2:C200);似乎不起作用