Google apps script 谷歌应用程序脚本-删除谷歌工作表中的部分文本

Google apps script 谷歌应用程序脚本-删除谷歌工作表中的部分文本,google-apps-script,google-sheets,Google Apps Script,Google Sheets,所以我在谷歌电子表格中有一个值列表 Color Red Color Blue Color Green 作为纯文本。是否可以通过谷歌应用程序脚本编辑所有这些单元格以删除“颜色”?我想公式解决方案会更简单: =替换(A1,“颜色”和“”) 但是如果你想用新的值覆盖这些值,那么我想谷歌应用程序脚本是唯一的选择: function myFunction() { const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName

所以我在谷歌电子表格中有一个值列表

Color Red
Color Blue
Color Green

作为纯文本。是否可以通过谷歌应用程序脚本编辑所有这些单元格以删除
“颜色”

我想公式解决方案会更简单:

=替换(A1,“颜色”和“”)

但是如果你想用新的值覆盖这些值,那么我想谷歌应用程序脚本是唯一的选择:

function myFunction() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName(`Sheet1`);
  const values = sh.getRange(`A1:A${sh.getLastRow()}`).getValues().flat();
  const new_values = values.map(v=>[v.replace(`Color `,``)]);
  sh.getRange(1,1,new_values.length,1).setValues(new_values);
}
别忘了更改工作表的名称。在我的例子中,它是
Sheet1
,并根据您的需要调整范围。在我的示例中,我从A列和第一个单元格开始,直到最后一行包含内容,然后覆盖相同的列。

您也可以使用此选项,作为已提供解决方案的替代方案:

函数myColor(){
让电子表格=SpreadsheetApp.getActive();
let sheet=spreadsheet.getActiveSheet();
设VAL=sheet.getRange(“行”、“列”、“行中无行”,1).getValues()
让regEx=newregexp(/^[^\s]+/);
for(设i=0;i
上述解决方案使用正则表达式来检查每个单元格的第一个字是否为“颜色”,如果条件检查,则使用
split
slice
方法将其删除

为了检索值,使用了
getRange()
方法来获取范围,然后使用
getValues()
来获取值

参考文献
  • )

  • )


是的,但也可以通过公式进行。您是否要求使用脚本完成此操作?
function myColor() {
    let spreadsheet = SpreadsheetApp.getActive();
    let sheet = spreadsheet.getActiveSheet();
    let vals = sheet.getRange("ROW", "COLUMN", "NO_OF_ROWS", 1).getValues()
    let regEx = new RegExp(/^[^\s]+/);
    for (let i = 0; i < vals.length; i++)
        if (regEx.exec(vals[i][0])[0] === "Color")
            sheet.getRange(i + 1, 1).setValue(vals[i][0].split(' ').slice(1));
}