如何在Google Sheets中将文本转换为URL友好名称?
Google Sheets 实现URL友好名称格式转换方案
完全可以实现,以下是两种可直接落地的方案,匹配变音字符替换、&转and、空格换连字符的规则要求。
方案1:内置嵌套函数(无需写代码,开箱即用)
直接在空白列首行(比如处理A列内容就在B1单元格)输入以下公式,按回车后下拉填充即可批量处理整列内容:=TRIM(REGEXREPLACE(LOWER(REGEXREPLACE(REGEXREPLACE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"ä","ae"),"ö","oe"),"ü","ue"),"Ä","ae"),"Ö","oe"),"Ü","ue"),"ß","ss"),"&","and"),"[^a-zA-Z0-9]+","-")), "^-|-$", ""))
公式处理逻辑:
- 优先替换德语变音字符(ä/ö/ü/Ä/Ö/Ü/ß)为URL兼容的标准拼写,匹配示例中
Mäx→maex的转换要求 - 将
&符号替换为文本and - 所有连续的非字母数字字符(包括空格、标点、其他特殊符号)统一替换为单个连字符
- 默认输出全小写格式,和给出的第一个示例效果完全一致;如果需要保留原文本大小写,直接删掉公式中的
LOWER()部分即可 - 自动清除字符串首尾多余的连字符,避免出现
-xxx-这类不符合URL规范的格式
效果验证:
- 输入
Mäx Mustermann GmbH,输出maex-mustermann-gmbh - 输入
Diesdas& Company,输出diesdasand-company(如果去掉LOWER()则输出Diesdasand-Company,可根据需要调整)
如果需要新增其他特殊字符替换规则,直接在公式的SUBSTITUTE层叠结构中新增对应替换规则即可。
方案2:自定义函数(适合规则多、需要长期维护的场景)
如果需要处理的特殊字符较多,嵌套函数可读性差不好维护,可以用Apps Script写自定义函数,步骤如下:
- 打开表格后点击顶部菜单栏「扩展程序」→「Apps Script」
- 在弹出的脚本编辑页删除默认的空函数,粘贴以下代码后点击保存按钮,按提示完成账号授权:
function TO_URLSLUG(input) { // 特殊字符映射表,可根据需求自行增删键值对 const charReplaceMap = { 'ä': 'ae', 'ö': 'oe', 'ü': 'ue', 'ß': 'ss', 'Ä': 'ae', 'Ö': 'oe', 'Ü': 'ue', '&': 'and', 'é': 'e', 'è': 'e', 'ê': 'e', 'ë': 'e', 'á': 'a', 'à': 'a', 'â': 'a', 'ó': 'o', 'ò': 'o', 'ô': 'o', 'ú': 'u', 'ù': 'u', 'û': 'u', 'ñ': 'n', 'ç': 'c' }; // 按映射表替换特殊字符 let content = input.split('').map(char => charReplaceMap[char] || char).join(''); // 所有非字母数字字符替换为连字符,合并连续连字符 content = content.replace(/[^a-zA-Z0-9]+/g, '-'); // 去除首尾连字符,默认转小写,不需要小写可删除末尾的.toLowerCase() return content.replace(/^-|-$/g, '').toLowerCase(); }
- 回到表格页面,直接在B1单元格输入公式
=TO_URLSLUG(A1),按回车后下拉即可批量处理。后续需要新增特殊字符替换规则,只需要在charReplaceMap中添加对应的字符和替换值即可,维护成本更低。
内容的提问来源于stack exchange,提问作者FlorianT.
相关产品推荐
相关产品推荐

