如何借助CSV文件在Google Docs中批量执行查找替换?
嘿,这个批量替换的需求我太懂了——手动写几百条replaceText简直是噩梦!用CSV来管理替换规则绝对是正确的思路,我来给你一步步讲怎么实现:
步骤1:规范你的CSV文件格式
你之前写的「賴,頼 國,国 遲,遅」格式容易出问题,建议改成每行一个替换对的标准格式,避免空格干扰解析:
賴,頼 國,国 遲,遅
- 每行的第一个是要替换的繁体汉字,第二个是对应的日文汉字,用英文逗号分隔
- 不要加多余空格,也不要留空行(如果不小心留了,后面的代码会自动过滤)
步骤2:上传CSV到Google Drive
把整理好的CSV文件上传到你的Google Drive,记住它的文件ID——打开CSV文件后,浏览器地址栏里d/后面的字符串就是ID,比如:
地址栏示例:
https://drive.google.com/file/d/abc123XYZ/view→ 文件ID是abc123XYZ
步骤3:编写Google Apps Script批量替换代码
打开你的Google Docs,点击工具→脚本编辑器,把下面的代码粘贴进去,替换掉默认内容:
function batchReplaceFromCSV() { // 1. 获取当前文档的正文对象 const body = DocumentApp.getActiveDocument().getBody(); // 2. 替换成你的CSV文件ID(从Drive地址栏提取) const csvFileId = "你的CSV文件ID"; const csvFile = DriveApp.getFileById(csvFileId); // 用UTF-8编码读取,避免中文/日文汉字乱码 const csvContent = csvFile.getBlob().getDataAsString("UTF-8"); // 3. 解析CSV内容:拆分成替换对数组 const replacePairs = csvContent.split("\n") .filter(line => line.trim() !== "") // 过滤空行 .map(line => { // 拆分每行的旧字和新字,并去除前后多余空格 const [oldChar, newChar] = line.split(",").map(item => item.trim()); return { old: oldChar, new: newChar }; }); // 4. 循环执行全局替换 replacePairs.forEach(pair => { // 确保替换对有效(避免空值报错) if (pair.old && pair.new) { body.replaceText(pair.old, pair.new); // 控制台输出替换记录,方便调试(可通过「查看→日志」查看) console.log(`已完成替换:${pair.old} → ${pair.new}`); } }); // 替换完成后弹出提示 DocumentApp.getUi().alert("批量汉字替换已完成!"); }
关键细节说明
- 编码问题:代码里用
UTF-8读取CSV,确保繁体/日文汉字不会乱码 - 容错处理:自动过滤空行、去除字符前后空格,避免无效替换
- 调试方便:控制台会记录每一次替换,万一有问题可以快速排查
运行脚本
回到脚本编辑器,点击工具栏的运行按钮(▶️),第一次运行会要求授权,按照提示完成权限验证即可。
内容的提问来源于stack exchange,提问作者tear2019
相关产品推荐
相关产品推荐

