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

Google Sheets批量生成学生进度图表并自动存到Google Drive相关问题咨询

学生每周进度图批量生成+对接Autocrat实现方案

前置准备

你已经在Google Sheets中完成全量学生进度数据的录入,且制作完成与需求样式一致的单学生进度图模板。
注意:所有操作均在Google生态内完成,无需跳转第三方工具

1. 批量生成每个学生的独立进度图表

无需手动修改学生姓名,通过Google Apps Script批量遍历生成即可,操作逻辑如下:

  • 打开对应Google Sheets,点击顶部菜单「扩展程序 > Apps Script」进入脚本编辑器
  • 先从数据页提取所有唯一学生姓名列表,避免重复处理
  • 遍历每个学生姓名,复制模板图表,修改图表的数据源筛选条件仅保留当前学生的进度数据,同步修改图表标题为对应学生姓名
  • 核心参考代码:
function batchGenerateStudentCharts() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  // 替换为你存储学生数据的sheet名称
  const dataSheet = ss.getSheetByName("学生进度总表");
  // 取你提前做好的模板图表,默认取数据页第一个图表,可按需调整索引
  const templateChart = dataSheet.getCharts()[0];
  // 提取所有学生姓名,假设姓名在A列,从第二行开始,可按需调整列号
  const studentNames = [...new Set(dataSheet.getRange("A2:A").getValues().flat().filter(Boolean))];
  studentNames.forEach(studentName => {
    // 筛选当前学生的所有进度数据
    const dataFilter = dataSheet.getRange(1,1,dataSheet.getLastRow(), dataSheet.getLastColumn()).createFilter();
    dataFilter.setColumnFilterCriteria(1, SpreadsheetApp.newFilterCriteria().whenTextEqualTo(studentName).build());
    // 生成当前学生的专属图表
    const studentChart = templateChart.modify()
      .setOption("title", `${studentName} 每周学习进度`)
      .build();
    // 后续存储、获取链接逻辑接对应模块
    dataFilter.remove();
  })
}

2. 自动将生成的图表存入Google Drive

在上述遍历逻辑中增加存储代码即可实现自动保存,操作逻辑如下:

  • 先在Google Drive中创建专门存储学生进度图的文件夹,打开文件夹后从浏览器地址栏提取文件夹ID(地址栏最后一段字符串)
  • 把生成的学生图表转为png格式的Blob文件,按「学生姓名+周次+进度图」的规则命名避免重名
  • 调用Drive接口存入目标文件夹,同时设置文件权限为「任何有链接的人可查看」,方便后续插入报告
  • 核心参考代码(插入到上述遍历逻辑的dataFilter.remove();之前即可):
// 替换为你提前创建的目标文件夹ID
const targetFolder = DriveApp.getFolderById("替换为你的文件夹ID");
// 替换为对应周次,也可以代码自动获取当前周,按需调整
const weekNum = "第12周";
const chartBlob = studentChart.getAs("image/png").setName(`${studentName}_${weekNum}_进度图.png`);
const savedChartFile = targetFolder.createFile(chartBlob);
// 设置文件权限为公开可查看
savedChartFile.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);

3. 获取对应图表的访问链接

存储完成后直接调用文件方法即可获取链接,同时写入Google Sheets供Autocrat读取:

  • 从存储完成的文件中提取文件ID,拼接为可直接插入报告的图片直链
  • 把当前学生的图片直链写入到数据页对应学生行的指定列,后续Autocrat可以直接映射该字段
  • 核心参考代码(接上述存储逻辑之后):
const fileId = savedChartFile.getId();
// 拼接为可直接嵌入报告的直链格式
const directImgUrl = `https://drive.google.com/uc?export=view&id=${fileId}`;
// 找到当前学生在数据页的行号,把链接写入第4列(即D列,可按需调整列号)
const studentRow = dataSheet.createTextFinder(studentName).findNext().getRow();
dataSheet.getRange(studentRow, 4).setValue(directImgUrl);

对接Autocrat批量发邮件

所有学生的图片链接写入完成后,打开Autocrat插件,选择你提前制作的报告模板,将报告中的图片占位符映射到你存储图片链接的列,设置好收件人邮箱字段和附件规则,即可批量生成带专属进度图的报告发送到对应学生邮箱。

内容的提问来源于stack exchange,提问作者Tunggul Permono Wicaksono

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:18:03