如何通过脚本按钮自动生成Google表格多工作表评论汇总报告
实现Google Sheets按日工作表汇总报告的脚本方案
核心结论
完全可以通过绑定按钮的Google Apps Script实现按需生成汇总报告,以下是具体实现方案:
实现步骤与代码
1. 编写汇总脚本
打开目标Google表格,进入「扩展程序」→「Apps 脚本」,粘贴以下代码:
function generateDailyReport() { const activeSheet = SpreadsheetApp.getActiveSpreadsheet(); // 筛选出对应日期的工作表(可根据实际命名规则调整正则,示例匹配"1日""2日"格式) const dailySheets = activeSheet.getSheets().filter(sheet => /^\d+日$/.test(sheet.getName())); // 创建/替换汇总工作表 let reportSheet = activeSheet.getSheetByName("每日工作汇总报告"); if (reportSheet) activeSheet.deleteSheet(reportSheet); reportSheet = activeSheet.insertSheet("每日工作汇总报告"); // 设置表头 reportSheet.getRange("A1:C1").setValues([["日期", "工作描述", "评论"]]).setFontWeight("bold"); let currentRow = 2; // 遍历所有日期工作表提取数据 dailySheets.forEach(sheet => { const allData = sheet.getDataRange().getValues(); // 跳过表头(若工作表无表头,将i的起始值改为0) for (let i = 1; i < allData.length; i++) { const task = allData[i][0]; // A列工作描述 const comment = allData[i][3]; // D列评论 // 仅写入有工作描述的有效行 if (task) { reportSheet.getRange(currentRow, 1).setValue(sheet.getName()); reportSheet.getRange(currentRow, 2).setValue(task); reportSheet.getRange(currentRow, 3).setValue(comment || "无评论"); currentRow++; } } }); // 自动适配列宽 reportSheet.autoResizeColumns(1, 3); SpreadsheetApp.getUi().alert("汇总报告已生成!"); }
2. 绑定触发按钮
- 返回Google表格,点击「插入」→「绘图」,绘制一个自定义按钮(比如矩形框,添加文字"生成汇总报告")
- 点击绘制好的按钮,选择「分配脚本」,输入函数名
generateDailyReport并确认 - 首次点击按钮时,按照提示完成权限授权即可正常使用
3. 自定义适配说明
- 若你的日期工作表命名为"01""02"这类格式,将脚本中的正则改为
/^\d{1,2}$/ - 若工作表没有表头,将循环中的
let i = 1改为let i = 0 - 可根据需求调整汇总表的表头文字、格式样式
内容的提问来源于stack exchange,提问作者dek
相关产品推荐
相关产品推荐

