javascript - 用脚本替换 Google 电子表格中的多个字符串

标签 javascript google-apps-script google-sheets

我想为 Google Spreadsheet 制作一个脚本,以便自动替换一系列字符串(实际上,用于将字符串从一种语言翻译为另一种语言)。问题是我每天都必须这样做,而脚本可以让我节省很多时间。

我发现这个脚本是由 Bannager Bong 制作的。它适用于一个字符串,但我想让它适用于一组元素:

function fandr() {
   var r=SpreadsheetApp.getActiveSheet().getDataRange();
   var rws=r.getNumRows();
   var cls=r.getNumColumns();
   var i,j,a,find,repl;

   find="abc";
   repl="xyz";

   for (i=1;i<=rws;i++) {
      for (j=1;j<=cls;j++) {
         a=r.getCell(i, j).getValue();
         if (r.getCell(i,j).getFormula()) {continue;}
         try {
            a=a.replace(find,repl);
            r.getCell(i, j).setValue(a);
         }
         catch (err) {continue;}
      }
   }
}

例如,我想循环 find=["abc","aaa","ooo"]; 中的变量,并将这些字符串更改为 repl=["xyz ","UUU","aAa"];

但是由于我的编程技能很差,我不知道如何继续。

你能帮我一下吗?

提前致谢,

最佳答案

我使用了查找 -> 替换对象中的 map ,因此更清楚哪些值与其他值对应。然后,我循环遍历每个键/值对并使用与原始代码片段中相同的逻辑。

function FindAndReplace() {
  var data_range = SpreadsheetApp.getActiveSheet().getDataRange();
  var num_rows = data_range.getNumRows();
  var num_columns = data_range.getNumColumns();

  var find_replace = {
      "abc": "xyz",
      "aaa": "UUU",
      "ooo": "aAa",
  }

  Object.keys(find_replace).map(function(find) {
    var replace = find_replace[find];
    for (var row=1; row <= num_rows; row++) {
     for (var col=1; col <= num_columns; col++) {
        var value = data_range.getCell(row, col).getValue();
        if (data_range.getCell(row, col).getFormula()) {continue;}
        try {
           value = value.replace(find, replace);
           data_range.getCell(row, col).setValue(value);
        }
        catch (err) {continue;}
     }
  }
 });
}

关于javascript - 用脚本替换 Google 电子表格中的多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39169590/

相关文章:

javascript - 为什么删除一行会影响下一行?

python - 用于访问自己的 Google 表格的最终用户凭据

javascript - 在 ExtJS Grid 中设置日期过滤器的值

javascript - Google Apps 脚本 - 如果单元格 = 'yes',则使用 onEdit 运行脚本

Javascript:参数可以是任何东西吗?

google-apps-script - Apps Script 中的 getActive() 和 getActiveSpreadsheet() 有什么区别?

javascript - 谷歌电子表格中的数据绑定(bind)?

javascript - Google 应用程序脚本根据一列删除重复项

javascript - 滑动幻灯片 - 显示最后一张幻灯片 100%

javascript - HTML/JavaScript : Disable HTML CONTENT in contentEditable=true