replace - Google表格中的自动查找和替换脚本 - 删除某些特定单元格内容 - 全局替换

标签 replace google-apps-script google-sheets automation find

我的工作表中的许多单元格条目包含我想要删除的无关单词。我需要一个脚本来查找单列(在本例中为“B”)中的关键字并按顺序删除它们。目标是使单元格条目更短。

我的关键字是“Epic Artifactory DIY”、“Barn”、“Planks”、“Pack”、“优惠券:WTXPXZP”、“优惠券:FREESHIP50”、“优惠券:SPRING10”和“Wall”。

我找到了这个脚本,但它对我不起作用。

function fandr() {
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var s=ss.getActiveSheet();
  var r=s.getDataRange();
  var vlst=r.getValues();
  var i,j,a,find,repl;
  find="abc";
  repl="xyz";
  for (i in vlst) {
    for (j in vlst[i]) {
      a=vlst[i][j];
      if (a==find) vlst[i][j]=repl;
    }
  }
  r.setValues(vlst);
}

谢谢

最佳答案

下面是一些代码,它仅获取一列中的数据,并用空字符串替换所有内容(删除单词)。替换 Google 表格的一列中的单词。

function replaceInColumn() {
  var arrayWordsToFind,dataInColumn,dataAsString,newString,
      newData,outerArray,i,lastrow,L,sh,ss,tempArray,toFind;

  arrayWordsToFind = [
  "Epic Artifactory DIY", "Barn", "Planks", "Pack", 
    "Coupon: WTXPXZP", "Coupon: FREESHIP50", "Coupon: SPRING10", "Wall"
    ]

  ss = SpreadsheetApp.getActiveSpreadsheet();
  sh = ss.getSheetByName("Your Sheet Name Here");
  lastrow = sh.getLastRow();//Get row number of last row

  //sh.getRange(start row, start column, number of Rows, number of Columns)
  dataInColumn = sh.getRange(2, 2, lastrow).getValues();

  dataAsString = dataInColumn.toString();//Convert 2D array to a string
  //Logger.log('dataAsString: ' + dataAsString)

  newString = dataAsString;

  L = arrayWordsToFind.length;//The number of words to find

  for (i=0;i<L;i++) {//Loop once for every word to find
    toFind = new RegExp(arrayWordsToFind[i], "g");//define new Reg Ex with word to find - replace globally
    newString = newString.replace(toFind,"");//Delete all found words
  }

  //Logger.log('newString: ' + newString)

  newData = newString.split(",");//Convert string to 1D array
  outerArray = [];

  L = newData.length;

  for (i=0;i<L;i++) {
    //Logger.log('i: ' + i)
    //Logger.log('newData[i]: ' + newData[i])

    tempArray = [];//Reset
    tempArray.push(newData[i]);
    outerArray.push(tempArray);//Create a new 2D data array
  }

  sh.getRange(2, 2, outerArray.length).setValues(outerArray);
}

关键词:全局查找替换列

关于replace - Google表格中的自动查找和替换脚本 - 删除某些特定单元格内容 - 全局替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43353463/

相关文章:

r - 在R中,使用gsub删除除句点以外的所有标点符号

google-apps-script - Google Apps 脚本 - 条件用户输入 - 数字提示

postgresql - 将 Postgres 数据导入 Google 电子表格

javascript - 用数字单位替换字符串的一部分

java - 如何用点之前的单词替换字符串中的点 ('.' )?

php - 用不同的值替换多次出现的字符串

google-apps-script - 修改现有表单值 - GetChoices() 不起作用

javascript - 如何使用 javascript 变量分配 Google Apps 脚本变量?

google-sheets - 将多列堆叠到一列上?

javascript - 轻松替换值中多行的字符串