Google Workspace 自动化
Apps Script 是 Google 生态里的"万能胶水"——免费、强大、触手可及。
Google 自动化全景
graph TD
GAS[Apps Script] --> SHEETS[Google Sheets]
GAS --> DOCS[Google Docs]
GAS --> FORMS[Google Forms]
GAS --> GMAIL[Gmail]
GAS --> CALENDAR[Google Calendar]
GAS --> DRIVE[Google Drive]
GAS --> TRIGGER[触发器]
TRIGGER --> TIME[定时触发]
TRIGGER --> FORM_SUBMIT[表单提交]
TRIGGER --> EDIT[表格编辑]
style GAS fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
Apps Script 常用脚本
"""
Google Apps Script 模板 (JavaScript 语法)
用 Python 模拟展示逻辑
"""
from dataclasses import dataclass
@dataclass
class AppsScriptTemplate:
name: str
trigger: str
code_description: str
use_case: str
SCRIPTS = [
AppsScriptTemplate(
"自动发送邮件报表",
"每日定时触发",
"""
// Google Apps Script
function sendDailyReport() {
var sheet = SpreadsheetApp.getActive().getSheetByName('日报');
var data = sheet.getDataRange().getValues();
var html = '<table border="1">';
data.forEach(function(row) {
html += '<tr>' + row.map(function(cell) {
return '<td>' + cell + '</td>';
}).join('') + '</tr>';
});
html += '</table>';
GmailApp.sendEmail(
'team@company.com',
'每日销售报表 - ' + new Date().toLocaleDateString(),
'',
{htmlBody: html}
);
}
""",
"每日自动发送 Sheets 数据邮件给团队",
),
AppsScriptTemplate(
"表单提交自动处理",
"onFormSubmit",
"""
// 表单提交触发
function onFormSubmit(e) {
var responses = e.values;
var name = responses[1];
var email = responses[2];
var type = responses[3];
// 创建审批任务
var calendar = CalendarApp.getDefaultCalendar();
calendar.createEvent('审批: ' + name,
new Date(), new Date(Date.now() + 3600000));
// 发送确认邮件
GmailApp.sendEmail(email,
'申请已收到',
'您的 ' + type + ' 申请已提交,请等待审批。');
}
""",
"表单提交后自动创建日历事件和发送确认邮件",
),
]
print("=== Apps Script 模板 ===")
for s in SCRIPTS:
print(f"\n{s.name} (触发: {s.trigger})")
print(f" 用途: {s.use_case}")
print(f" 代码:{s.code_description}")
Google Sheets 自动化技巧
"""
Google Sheets 高级功能
"""
SHEETS_FORMULAS = {
"跨表查询": "=IMPORTRANGE('spreadsheet_url','Sheet1!A:D')",
"API 数据导入": "=IMPORTDATA('https://api.example.com/data.csv')",
"网页抓取": '=IMPORTXML("url","//div[@class=\\"price\\"]")',
"翻译": '=GOOGLETRANSLATE(A2,"en","zh")',
"智能填充": "=ARRAYFORMULA(IF(A2:A<>\"\",B2:B*C2:C,\"\"))",
"条件计数": '=QUERY(A:D,"SELECT B, SUM(D) GROUP BY B")',
"唯一值": "=UNIQUE(A2:A)",
"过滤": '=FILTER(A2:D,C2:C>100,D2:D="已完成")',
}
print("=== Sheets 高级公式 ===")
for name, formula in SHEETS_FORMULAS.items():
print(f" {name}: {formula}")
# 自动化场景
SHEETS_AUTOMATION = {
"库存管理": {
"功能": "实时库存看板",
"实现": "QUERY + 条件格式 + Apps Script 邮件提醒",
},
"客户 CRM": {
"功能": "客户跟进管理",
"实现": "Forms 收集 → Sheets 存储 → 定时提醒",
},
"项目管理": {
"功能": "甘特图 + 进度追踪",
"实现": "日期公式 + 条件格式 + 自动状态更新",
},
"财务报表": {
"功能": "自动汇总多表数据",
"实现": "IMPORTRANGE + QUERY + 定时邮件产出",
},
}
print("\n=== Sheets 自动化场景 ===")
for name, info in SHEETS_AUTOMATION.items():
print(f"\n{name}:")
for k, v in info.items():
print(f" {k}: {v}")
Google vs Microsoft 自动化对比
| 维度 | Google Workspace | Microsoft 365 |
|---|---|---|
| 脚本语言 | JavaScript (Apps Script) | TypeScript (Office Script) / C# |
| 免费度 | Apps Script 完全免费 | Power Automate 需额外付费 |
| 生态 | 偏轻量、互联网 | 偏企业、全功能 |
| 协作 | 原生实时协作 | 近年追上 |
| 离线 | 有限 | 完整桌面客户端 |
| 最佳场景 | 小团队、创业公司 | 大企业、合规要求高 |
下一章:文档智能处理——用 AI 让文档自己"说话"。