Google Apps脚本-匹配2个字符串

时间:2019-10-30 11:23:57

标签: google-apps-script google-sheets

我一直在从事一个新项目,我需要根据单元格值创建新表。

function ign_list() {
  var nRange = SpreadsheetApp.getActive().getRangeByName("player")
  return nRange.getValues()
}


function sheet_list() {
  var out = new Array()
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  for (var i=0 ; i<sheets.length ; i++) out.push( [ sheets[i].getName() ] )
  return out   
}

function new_sheet() {
  var ui = SpreadsheetApp.getUi();
  var sheet_names = sheet_list();
  var ign_names = ign_list();

  for (var i=0; i<ign_names.length; i++){
    for (var n=0; n<sheet_names.length; n++) {
      if (ign_names[i] !="") {
        if (ign_names[i] == sheet_names[n]) {
          ui.alert(ign_names[i]+" Equal "+sheet_names[n])
        } else {
          ui.alert(ign_names[i]+" Not Equal "+sheet_names[n])
        }
      }
    }
  }
}

我有一个名为Raw Stats的工作表,在此范围内,我有一个值为Raw Stats的单元格,但比较时说不相等。

还有另一种比较字符串的方法吗?

使用indexOf

for (var i=0; i<ign_names.length; i++){
    if (sheet_names.indexOf(ign_names[i][0]) != -1) {
      SpreadsheetApp.getActiveSpreadsheet().insertSheet().setName(ign_names[i][0]);
    } else {
    }
  }

即使值相同也总是返回-1

1 个答案:

答案 0 :(得分:0)

您正在使用getValues()方法。返回一个行数组。

即使您的范围仅受到一列的影响,其结果也将是:[[A1],[A2],[A3],...]

您可以通过展平数组或使用ign_names[i][0]来解决此问题。

希望这会有所帮助