You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets脚本开发:选中单元格正则替换与文本清理

Google Sheets 自定义脚本:批量清理选中单元格文本格式

以下是完整的脚本代码,包含你已有的自定义菜单逻辑,以及补全后的tidyText核心处理函数:

function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('Tidy Text')
    .addItem('清理选中单元格', 'tidyText')
    .addToUi();
}

function tidyText() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getActiveRange();
  const values = range.getValues();
  
  // 遍历处理每个单元格内容
  const cleanedValues = values.map(row => {
    return row.map(cell => {
      // 非文本内容直接返回,不做处理
      if (typeof cell !== 'string') return cell;
      
      // 1. 移除不在白名单内的无效字符
      let cleaned = cell.replace(/[^0-9a-zA-Z-,.!#'@ ~]/g, '');
      // 2. 把冒号替换为空格(匹配示例中Quantity:4转成Quantity 4的需求)
      cleaned = cleaned.replace(/:/g, ' ');
      // 3. 清理多余空格:多空格转单空格,同时去除首尾空格
      cleaned = cleaned.replace(/\s+/g, ' ').trim();
      
      return cleaned;
    });
  });
  
  // 将处理后的数据批量写回选中区域
  range.setValues(cleanedValues);
}

关键逻辑说明

  • 选中区域处理:只对当前选中的单元格生效,不会影响其他单元格
  • 无效字符过滤:通过正则[^0-9a-zA-Z-,.!#'@ ~]精准保留你指定的合法字符,移除括号、特殊符号等无效内容
  • 格式统一:先替换冒号为空格,再把所有连续的多空格压缩成单个,同时去掉文本首尾的冗余空格
  • 兼容性:非文本类型的单元格(比如纯数字、空白)会直接跳过,避免错误

测试效果

输入:Apples 123-1234-12345 ( golden delicious Quantity:4 )
输出:Apples 123-1234-12345 golden delicious Quantity 4

内容的提问来源于stack exchange,提问作者Google Sheets

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 01:05:06