日常中的小不便
昨天早上,團隊的數據檢查時間又拉長了。要在 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 與條件式格式化相遇的地方,產生了小而有力的自動化。