如何为Google Sheet添加脚本自动获取Google Drive中XLSX文件的数据?
如何用Google Apps Script自动从XLSX文件更新Google Sheet
一、在哪里添加脚本
- 打开需要更新的目标Google Sheet
- 点击顶部菜单栏的「扩展程序」→「Apps Script」,打开脚本编辑器页面
- 编辑器默认的
Code.gs文件就是编写代码的位置,直接替换原有内容或添加新代码即可
二、操作步骤
1. 准备文件信息
找到存储在Google Drive中的XLSX文件,从文件URL里提取文件ID——比如URL是https://drive.google.com/file/d/abc123xyz/view,那么abc123xyz就是文件ID。
2. 编写核心脚本
以下是基础实现脚本,包含XLSX读取、数据导入、简单清洗逻辑,按需修改参数和清洗规则:
function importXLSXToSheet() { // 替换为你的XLSX文件ID和目标工作表名称 const xlsxFileId = "你的XLSX文件ID"; const targetSheetName = "目标工作表名称"; const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(targetSheetName); // 清空目标表原有数据(可选,根据需求保留或删除) targetSheet.clearContents(); // 将XLSX转为临时Google Sheet const xlsxFile = DriveApp.getFileById(xlsxFileId); const tempSheet = Drive.Files.insert( {mimeType: MimeType.GOOGLE_SHEETS}, xlsxFile ); // 读取临时表数据 const tempSpreadsheet = SpreadsheetApp.openById(tempSheet.id); const sourceSheet = tempSpreadsheet.getSheets()[0]; // 取XLSX的第一个工作表 const rawData = sourceSheet.getDataRange().getValues(); // 数据清洗示例:移除全空行 const cleanedData = rawData.filter(row => row.some(cell => cell !== "")); // 写入目标工作表 targetSheet.getRange(1, 1, cleanedData.length, cleanedData[0].length).setValues(cleanedData); // 删除临时文件 DriveApp.getFileById(tempSheet.id).setTrashed(true); }
3. 授权并测试脚本
- 点击脚本编辑器顶部的运行按钮(三角图标),首次运行会触发权限申请,按照提示完成授权(需允许脚本访问你的Drive和Sheet)
- 测试运行成功后,检查目标Sheet是否已导入并清洗好数据
4. 设置自动触发
- 点击脚本编辑器左侧的「触发器」图标(闹钟样式)
- 点击「添加触发器」,配置以下内容:
- 选择要运行的函数:
importXLSXToSheet - 选择事件源:「时间驱动」
- 选择时间类型:按需设置(比如「每天」「每周」,或特定时段)
- 选择要运行的函数:
- 保存触发器,之后脚本会自动按设定频率执行更新
三、自定义调整提示
- 数据清洗逻辑可根据需求修改:比如过滤特定值、格式化日期/数字、调整列顺序等,直接修改
cleanedData的处理代码即可 - 如果XLSX有多张工作表,可将
sourceSheet = tempSpreadsheet.getSheets()[0]改为tempSpreadsheet.getSheetByName("指定工作表名称")来读取特定表 - 若不需要清空原有数据,可删除
targetSheet.clearContents()这一行,或修改为从指定行开始写入
内容的提问来源于stack exchange,提问作者simplycoding
相关产品推荐
相关产品推荐

