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

如何在脚本修改文件名后更新Google Form回复板块的显示内容

问题原因

Google Form的回复面板存储的是用户上传文件那一刻的静态文件名快照,不会实时同步对应Drive文件的名称改动,因此你直接修改Drive文件名称不会自动更新Form端的显示内容。

解决方法

你需要在修改完Drive文件名称后,主动更新Form对应回复条目的响应内容,把新的文件名同步到Form的回复记录中。修改后的可实现需求的脚本如下:

function updateFileNameAndFormResponse() {
  var existingForm = FormApp.getActiveForm();
  var formResponses = existingForm.getResponses();

  for (var i = 0; i < formResponses.length; i++) {
    var formResponse = formResponses[i];
    var itemResponses = formResponse.getItemResponses();
    var updatedItemResponses = [];

    for (var j = 0; j < itemResponses.length; j++) {
      var itemResponse = itemResponses[j];
      var item = itemResponse.getItem();
      // 仅处理文件上传类型的问题,跳过其他类型题目
      if (item.getType() !== FormApp.ItemType.FILE_UPLOAD) {
        updatedItemResponses.push(itemResponse);
        continue;
      }
      
      var fileIds = itemResponse.getResponse();
      var newFileIds = [];
      for (var n = 0; n < fileIds.length; n++) {
        var fileId = fileIds[n];
        var dFile = DriveApp.getFileById(fileId);
        // 此处可替换为你实际需要的命名规则
        var newFileName = "New name " + (n + 1);
        dFile.setName(newFileName);
        newFileIds.push(fileId);
      }
      // 用相同的文件ID重新生成响应,触发Form读取最新文件名更新快照
      var newItemResponse = item.asFileUploadItem().createResponse(newFileIds);
      updatedItemResponses.push(newItemResponse);
    }
    // 提交更新后的回复内容,覆盖原有记录
    formResponse.withItemResponses(updatedItemResponses).submit();
  }
}
注意事项
  • 首次运行脚本前请按提示完成权限授权,确保脚本拥有Form编辑、Drive文件编辑权限
  • 若仅需处理新提交的回复,可给Form配置提交表单时触发的脚本触发器,无需每次全量扫描所有历史回复
  • 脚本运行完成后刷新Form回复页面,即可看到更新后的文件名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:36:00