【问题标题】:Google Sheets - Apps Script - Take a cell, replace some text, place it in another cellGoogle 表格 - 应用程序脚本 - 取一个单元格,替换一些文本,将其放在另一个单元格中
【发布时间】:2021-07-20 07:42:44
【问题描述】:

我有一个电影电子表格。他们有头衔。有些标题有奇怪的外国字符。我想要一列仅包含英文字符版本的标题。

我发现了这个:How to replace non-English characters with simple a-z counterparts on keyup event

还有这个:Google script setValue

并想出了这个:

function StripAccents(originalTitle) {
var latin_map = {
  'Á': 'A',
  ...
  'ₓ': 'x'
}
accentedText = SpreadsheetApp.getActiveSheet().getRange(originalTitle).getValue();
return accentedText.replace(/[^A-Za-z0-9]/g, function(x) { return latin_map[x] || x;});
}

但它说它找不到范围。鉴于 getRange() 似乎需要一个数字而不是单元格引用,这似乎是有道理的,但我不知道如何进行单元格引用,并且这两个链接中的第二个链接表明它应该可以工作,所以.. .帮助?

【问题讨论】:

    标签: javascript google-apps-script google-sheets


    【解决方案1】:

    因为 originalTitle 必须是字符串,而不是范围,即“A1”而不是 A1。所以,在工作表中,你必须使用如下

    =StripAccents("A1")
    

    正确的代码是(可以不带引号使用):

    function StripAccents(originalTitle) {
    var latin_map = {
      'Á': 'A',
      'É': 'E'
    }
      return originalTitle.replace(/[^A-Za-z0-9]/g, function(x) { return latin_map[x] || x;});
    }
    

    【讨论】:

    • 顺便说一句,最后一行可以更短:return originalTitle.replace( /[^A-Za-z]/g, x => latin_map[x] || x );
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多