日常中的小不便
昨天早上,团队的数据检查时间又拉长了。要在 Google 表格中确认进来的订单信息,按状态手动涂色,寻找遗漏的项目。这个重复性工作每天累积 15 分钟。
「这能自动化吗?」
与 Claude Code 的首次对话
打开 Claude Code,简单说明了需求。
需要一个脚本:读取 Google 表格特定单元格的值,根据条件自动改变整行的颜色。例如,「状态」列如果是「待处理」就涂黄色,「已完成」就涂绿色。
Claude Code 立即提议了 Apps Script 代码。
function colorizeByStatus() {
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getDataRange();
const values = range.getValues();
for (let i = 1; i < values.length; i++) {
const status = values[i][2]; // 「状态」列 (第 3 列)
let color;
if (status === "待处理") {
color = "#FFFF00"; // 黄色
} else if (status === "已完成") {
color = "#00FF00"; // 绿色
} else if (status === "错误") {
color = "#FF0000"; // 红色
} else {
continue;
}
sheet.getRange(i + 1, 1, 1, sheet.getLastColumn())
.setBackground(color);
}
}
执行,以及惊讶
复制代码到 Google 表格的「扩展程序」>「Apps Script」窗口。选择函数名称,按下播放按钮。
3 秒后。
表格变了。某些行变成黄色,某些行变成绿色。自动涂色了。我没动一根手指。
最惊讶的是新增行时。颜色立即出现。自动化真的在「工作」。
更进一步
品尝基础自动化后,向 Claude Code 提出新要求。
「我也想检查数据的完整性。比如「数量」列如果空着,就用橙色标记警告,好吗?」
Claude Code 扩展了代码。这次不只是「涂色」,还加入了«验证逻辑»。
function validateAndColorize() {
const sheet = SpreadsheetApp.getActiveSheet();
const data = sheet.getDataRange().getValues();
for (let i = 1; i < data.length; i++) {
let bgColor = "#FFFFFF"; // 默认白色
// 根据状态分配颜色
const status = data[i][2];
if (status === "待处理") bgColor = "#FFFF00";
else if (status === "已完成") bgColor = "#00FF00";
// 数量空着就警告
const quantity = data[i][4];
if (!quantity || quantity === "") {
bgColor = "#FFA500"; // 橙色覆盖
}
sheet.getRange(i + 1, 1, 1, sheet.getLastColumn())
.setBackground(bgColor);
}
}
限制与下一步
从这个过程学到的:
1. **触发自动化**: 设定 Apps Script 的«时间触发»,让它每小时自动执行。现在我只需输入数据。
2. **错误记录**: 第一次试时搞混了列号,涂错了。与 Claude Code 一起检查 index 并修正。
3. **色码的重要性**: 必须与团队事先约定色码含义。同一个橙色,团队成员可能理解不同。
40 分钟,还有一整天的收获
整个过程耗时 40 分钟。代码编写 10 分、测试 15 分、触发设定 10 分、与团队分享规则 5 分。
隔天,团队成员说:
「颜色自动出现,一眼就看出数据问题。检查时间减到 3 分钟了。」
Claude Code 与条件式格式化相遇的地方,产生了小而有力的自动化。