You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:将Google Drive最新CSV数据自动导入同目录MASTER-SHEET

问题分析与解决方案

原代码存在的核心问题

  • 未筛选最新的CSV文件:仅遍历所有CSV,但未按修改/创建时间排序,无法定位到最新生成的文件
  • 未执行数据写入操作:仅完成了CSV解析,没有将数据写入到MASTER-SHEET的工作表中
  • 冗余的类型判断:已经通过getFilesByType('text/csv')筛选CSV文件,无需重复判断Blob的ContentType

修正后的代码

function importLatestCsvToMaster() {
  // 替换为你的MASTER-SHEET ID和目标工作表名称
  const masterSheetId = "{MASTERSHEET_ID}";
  const targetSheetName = "Sheet1"; // 请确认你的工作表实际名称,原代码的MASTERSHEET_SHEET1可能有误
  // 替换为你的Google Drive文件夹ID
  const folderId = '{GOOGLE_DRIVE_FOLDER_ID}';

  const masterSs = SpreadsheetApp.openById(masterSheetId);
  const targetSheet = masterSs.getSheetByName(targetSheetName);
  if (!targetSheet) {
    throw new Error(`找不到名为${targetSheetName}的工作表`);
  }

  const folder = DriveApp.getFolderById(folderId);
  let latestFile = null;
  let latestTime = new Date(0); // 初始化为最早时间

  // 遍历筛选出最新的、不带.old后缀的CSV文件
  const csvFiles = folder.getFilesByType('text/csv');
  while (csvFiles.hasNext()) {
    const file = csvFiles.next();
    const fileName = file.getName();
    if (!fileName.includes('.old')) {
      const lastModified = file.getLastUpdated();
      if (lastModified > latestTime) {
        latestTime = lastModified;
        latestFile = file;
      }
    }
  }

  if (!latestFile) {
    throw new Error("文件夹中未找到符合条件的CSV文件");
  }

  // 解析CSV数据
  const csvString = latestFile.getBlob().getDataAsString();
  const csvData = Utilities.parseCsv(csvString);

  // 写入数据:清空原有内容后写入新数据(若需追加,可改为从最后一行开始写入)
  targetSheet.clearContents();
  targetSheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);

  // 可选:标记已处理文件,避免重复导入
  latestFile.setName(latestFile.getName() + '.old');
}

关键改动说明

  1. 最新文件筛选:通过对比文件的最后修改时间,精准定位到文件夹中最新生成的CSV文件
  2. 数据写入:使用setValues()方法将解析后的CSV数据批量写入目标工作表,保证效率
  3. 错误检查:增加工作表和文件存在性校验,抛出明确错误信息,便于排查问题
  4. 重复处理防护:可选的文件重命名标记,处理完成后给文件添加.old后缀,避免后续重复导入
  5. 变量优化:将工作表名称改为可配置变量,修正原代码中可能存在的Sheet名称错误

内容的提问来源于stack exchange,提问作者James N.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 17:22:55