Apps 脚本如何将单元格格式化为正确的文本(案例)

Apps script how to format a cell to Proper Text (Case)

我的 sheet 收到了一份表格,有时我的客户会以小写或大写形式输入文本,并带有换行符

我有这段代码可以将单元格设为大写并删除换行符

var val = responses.getRange( i + 1 , 13).getValue();
    val = val.replace(/\n/g,", ");
    responses.getRange( i + 1 , 13).setValue(val.toUpperCase());

我需要的是将该单元格设置为正确的大小写,而不是大写

例如,如果文本是 "hello how ARE YOU" 我想转换为 "Hello How Are You" 或 "Hello how are you"

我一直在寻找这个,但找不到解决方案

有什么帮助吗?

谢谢

  • 您想使用 Google Apps 脚本将 hello how ARE YOU 修改为 Hello How Are YouHello how are you

如果我的理解是正确的,这个修改怎么样?请将此视为几个答案之一。

本次修改流程如下

首先修改为小写

  • 在模式 1 中,每个单词的第一个字符修改为大写。
  • 在模式2中,value的第一个字符修改为大写。

示例脚本:

var val = "hello how ARE YOU";

var pattern1 = val.toLowerCase().replace(/\b[a-z]/ig, function(match) {return match.toUpperCase()});
var pattern2 = val.toLowerCase().replace(/^[a-z]/i, function(match) {return match.toUpperCase()});

console.log(pattern1) // Hello How Are You
console.log(pattern2) // Hello how are you

参考:

如果需要其他图案,可以提供吗?

这是我为了在应用程序脚本中为其他人使用 PROPER 函数所做的。

首先,我使用名称(在本例中为客户)将函数放入单元格中。然后我使用 getDisplayValue 获取实际文本。然后将其写回单元格。

    customer = sht.getRange(row, col).setValue('=PROPER("'+customer+'")').getDisplayValue(); 
    sht.getRange(row, col).setValue(customer);

有点hack/alternative,但可以。