能否使用Google Script导入txt文件并替换指定工作表
Google Apps Script 自动化批量导入TXT到Sheets实现方案
前置准备
- 将每日更新的16个TXT文件统一上传到固定的Google Drive文件夹中,确保每个TXT文件名和对应要替换的Sheets工作表名称完全一致
- 确认你要操作的目标Google Sheets文件已经和Google Data Studio完成绑定,后续数据更新会自动同步到Data Studio报表
完整适配脚本
function batchImportTxtToSheets() { // 替换为你存储TXT文件的Drive文件夹ID const TXT_FOLDER_ID = "<替换为你的Drive文件夹ID>"; // 替换为你的目标Google Sheets文件ID const TARGET_SHEETS_ID = "<替换为你的Sheets文件ID>"; // TXT文件的分隔符,按实际情况修改,制表符为\t,空格为' ' const DELIMITER = ","; const txtFolder = DriveApp.getFolderById(TXT_FOLDER_ID); const txtFiles = txtFolder.getFilesByType(MimeType.PLAIN_TEXT); const targetSheets = SpreadsheetApp.openById(TARGET_SHEETS_ID); while (txtFiles.hasNext()) { const currentTxt = txtFiles.next(); const sheetName = currentTxt.getName().replace(/\.txt$/i, ""); const targetSheet = targetSheets.getSheetByName(sheetName); // 匹配到对应工作表才执行导入 if (targetSheet) { // 清空原有工作表全部内容 targetSheet.clear(); // 读取TXT内容并解析 const txtContent = currentTxt.getBlob().getDataAsString(); const parsedData = Utilities.parseCsv(txtContent, DELIMITER); // 写入新数据 targetSheet.getRange(1, 1, parsedData.length, parsedData[0].length).setValues(parsedData); } } // 可选:去掉下行注释,运行完成后自动给指定邮箱发通知 // MailApp.sendEmail("你的邮箱地址", "TXT数据导入完成", "今日16个TXT文件已全部更新到Sheets"); }
配置与运行说明
- 打开目标Google Sheets,点击顶部菜单栏「扩展程序」→「Apps Script」进入脚本编辑器,删除默认的空白代码,将上述代码粘贴进去
- 替换代码开头的两个ID参数,Drive文件夹ID可以在浏览器打开对应文件夹后,从URL中获取,Sheets文件ID同理从Sheets页面URL获取
- 按你实际TXT的分隔符修改
DELIMITER参数的值 - 第一次点击运行按钮,按提示完成脚本权限授权,授权完成后即可手动运行测试导入效果
定时自动运行设置
- 点击脚本编辑器左侧的「触发器」菜单,点击「添加触发器」
- 选择要执行的函数为
batchImportTxtToSheets,触发源选择「时间驱动」,触发类型选择「日计时器」,设置你每日需要自动运行的时间点保存即可
注意事项
- 若TXT文件使用非UTF-8编码,可以在
getDataAsString()方法中传入对应编码参数,例如getDataAsString("GBK") - 若你不需要保留每日的TXT文件,可以在脚本末尾添加删除已处理TXT文件的逻辑,避免下次重复处理
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

