谷歌表格中批量替换批量插入查询内UUID的方法求助
解决方案
方法1:谷歌表格内置公式(单UUID场景)
如果每行INSERT语句里只有一个标准格式的UUID(8-4-4-4-12结构),直接用正则替换公式:
在C列第一行输入以下公式,下拉填充至所有行:
=REGEXREPLACE(B1, "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}", A1)
公式会自动匹配B列中的标准UUID,替换为A列对应的新UUID。
方法2:Google Apps Script(批量/多UUID场景)
处理大量数据或单条语句含多个UUID时,用脚本更高效:
- 打开表格,点击「扩展程序」→「Apps 脚本」。
- 替换默认代码为以下脚本:
function replaceUUIDs() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const data = sheet.getDataRange().getValues(); // 从第2行开始遍历(假设第1行是表头) for (let i = 1; i < data.length; i++) { const newUUID = data[i][0]; const originalQuery = data[i][1]; // 全局匹配并替换所有标准UUID const updatedQuery = originalQuery.replace(/[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}/g, newUUID); sheet.getRange(i + 1, 3).setValue(updatedQuery); } }
- 点击「运行」,完成授权后脚本会自动将更新后的语句写入C列。
方法3:固定位置UUID的拆分拼接法
如果UUID是VALUES后的第一个参数(如INSERT INTO table (id) VALUES ('旧UUID')),用拆分拼接精准替换:
在C列输入公式:
=JOIN("'", INDEX(SPLIT(B1, "'"), 1), A1, JOIN("'", INDEX(SPLIT(B1, "'"), 3):INDEX(SPLIT(B1, "'"), COUNTA(SPLIT(B1, "'")))))
该公式按单引号拆分语句,替换指定位置的UUID后重新拼接。
内容的提问来源于stack exchange,提问作者Aditya
相关产品推荐
相关产品推荐

