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

如何使用Apps Script替换旧转换文件并回写fileId至Google Sheet

修复后的完整代码
function ConvertFiles() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  // 转换后文件ID回写的列号,此处设为第9列(I列),可根据需求修改
  var WRITE_BACK_COLUMN = 9;

  for (var r = 2; r <= sheet.getLastRow(); r++) {
    // 修正getValues返回二维数组的问题,取第一个有效值
    var fileId = sheet.getRange(r, 1).getValues()[0][0];
    var folderId = sheet.getRange(r, 8).getValues()[0][0];
    if (!fileId || !folderId) continue; // 跳过空行避免运行报错

    var sourceFile = DriveApp.getFileById(fileId);
    var baseName = sourceFile.getName().split('.')[0];
    var convertedFileName = baseName + '_converted';
    var blob = sourceFile.getBlob();
    var targetFolder = DriveApp.getFolderById(folderId);

    // 需求1:先删除目标文件夹内所有同名的旧转换文件
    var existFiles = targetFolder.getFilesByName(convertedFileName);
    while (existFiles.hasNext()) {
      var oldFile = existFiles.next();
      DriveApp.removeFile(oldFile);
      // 如需彻底删除而非仅移除出文件夹,改用 oldFile.setTrashed(true);
    }

    // 创建新的转换文件,此处示例保留原格式,如需转指定格式可修改blob的mimeType
    var newConvertedFile = targetFolder.createFile(blob.setName(convertedFileName));
    // 如果需要转成Google Workspace格式(比如docx转Google Docs),用以下方式替换上面的创建逻辑:
    // var newConvertedFile = Drive.Files.insert({
    //   title: convertedFileName,
    //   parents: [{id: folderId}]
    // }, blob, {convert: true});

    // 需求2:将新文件ID回写到表格指定列
    sheet.getRange(r, WRITE_BACK_COLUMN).setValue(newConvertedFile.getId());
  }
}
修改说明
  • 修复了原代码中getValues()返回二维数组取值错误的问题,避免文件ID、文件夹ID读取异常
  • 新增同名文件检测逻辑:每次生成新转换文件前,遍历目标文件夹内匹配文件名的旧文件,执行删除操作,避免重复生成
  • 补充了文件创建逻辑,原代码仅定义了文件参数未实际执行创建操作
  • 新增回写逻辑:生成转换文件后自动将ID写入指定列,可通过修改WRITE_BACK_COLUMN变量调整写入位置
  • 新增空行判断逻辑,避免表格有空行时脚本运行报错

注意:如果需要将非Google格式文件(如Word、Excel)转换为对应Google Workspace格式,将代码中普通创建文件的逻辑替换为注释里的Drive API转换逻辑即可,使用前需要在Apps Script编辑器的「服务」中添加Drive API服务。

内容的提问来源于stack exchange,提问作者Vishnu Kumaran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:15:05