Google脚本生成器

62 浏览
5 试用
0 购买
Sep 1, 2025更新

根据用户需求生成Google Apps脚本,实现自动化任务。

示例1

以下是一个能够满足您需求的 Google Apps 脚本。此脚本会从 Google Sheets 中读取员工的邮箱地址,生成会议通知的邮件正文,然后自动向所有员工批量发送电子邮件。

---

### 脚本代码

```javascript
function sendMeetingNotifications() {
  // Step 1: 访问 Google Sheet
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 获取当前活动的工作表
  const data = sheet.getDataRange().getValues(); // 获取整个表格的数据
  
  // Step 2: 遍历表格数据
  for (let i = 1; i < data.length; i++) { // 跳过第一行表头 (假设第一行存储列名)
    const name = data[i][0]; // 第一列代表员工姓名
    const email = data[i][1]; // 第二列代表员工邮箱
    const meetingDate = data[i][2]; // 第三列代表会议时间
    const meetingLocation = data[i][3]; // 第四列代表会议地点
    
    // Step 3: 自定义邮件内容
    const subject = "会议通知 - 请查收"; // 邮件主题
    const body = `
      亲爱的 ${name}:

      您好!

      这是关于即将召开的会议的通知。会议的详细信息如下:

      - 会议日期:${meetingDate}
      - 会议地点:${meetingLocation}

      请您准时参加会议。如有任何问题,请随时联系办公室。

      谢谢!
      
      此致敬礼,
      办公室管理
    `;
    
    // Step 4: 自动发送邮件
    if (email) { // 确保邮箱地址不为空
      GmailApp.sendEmail(email, subject, body); // 使用 Gmail 服务发送邮件
    }
  }
}
```

---

### 使用说明

1. **准备数据**
   - 在 Google Sheets 中创建一个电子表格,并填充以下列的数据:
     - 第 1 列:员工姓名,例如“张三”
     - 第 2 列:员工邮箱地址,例如“zhangsan@example.com”
     - 第 3 列:会议时间,例如“2023-12-15 10:00 AM”
     - 第 4 列:会议地点,例如“公司会议室A”

     例如:
     ```
     姓名      | 邮箱                  | 会议时间          | 会议地点
     张三      | zhangsan@example.com | 2023-12-15 10:00 | 公司会议室A
     李四      | lisi@example.com     | 2023-12-15 10:00 | 公司会议室A
     ```

2. **创建脚本**
   - 在 Google Sheets 中,依次点击 "扩展程序" > "Apps 脚本"。
   - 将上面的脚本代码复制并粘贴到 Apps Script 编辑器中,保存项目。

3. **运行脚本**
   - 在 Apps Script 编辑器中,选择 `sendMeetingNotifications` 函数,点击工具栏中的“运行”按钮。
   - 如果这是您首次运行脚本,Google 会提示您授权。按照屏幕提示完成授权。

4. **测试和验证**
   - 确保所有员工已经收到会议通知邮件。您可以检查 Sheet 数据和员工收到的邮箱是否一致。

---

### 脚本各部分的作用

1. **数据读取**
   - `const data = sheet.getDataRange().getValues();` 从整个工作表中读取数据,作为一个二维数组返回。

2. **数据遍历**
   - `for (let i = 1; i < data.length; i++)` 遍历数据记录,跳过表头。

3. **邮件正文生成**
   - `const body = ...` 动态替换每个员工的姓名、会议时间与地点,生成个性化的邮件内容。

4. **发送邮件**
   - `GmailApp.sendEmail(email, subject, body);` 使用 Gmail 服务向指定邮箱发送邮件,邮件标题和正文动态生成。

---

### 注意事项

1. 确保电子表格中数据格式正确,员工的邮箱地址不可为空。
2. 如果员工数量较多,可能受限于 Google Apps Script 的执行时间限制(6 分钟)。可以根据需要调整为分批发送。

如有进一步问题或需要调整,请随时提出!

示例2

为了帮助小微企业主自动生成库存报告,以下是一个 Google Apps 脚本示例。脚本的主要目标是从企业库存的 Google Sheets 文档中读取数据,分析库存的变化趋势,并将每日库存报告通过电子邮件发送到指定的收件人。  
假设库存数据(表单收集的结果)存储在一个 Google Sheets 工作表中,并且我们可以定期读取更新后的数据。

### 脚本功能
1. **读取 Google Sheets 中的库存数据**。
2. **分析库存变化趋势(例如,计算库存增加或减少,确定有哪些商品较低库存等)**。
3. **生成一份库存报告的摘要内容**。
4. **通过 Gmail 自动发送库存报告邮件**。
5. **设置触发器,使脚本每日定时运行**。

---

#### 获取必要的信息
在编写脚本前需要进一步明确以下事项:
1. **Google Sheets 表单 URL**:库存数据存储的位置。
2. **库存表格结构**:表格是否有必要的列,例如产品名称、库存数量、库存变动量等。
3. **目标邮件地址**:要把报告发送给谁?(可以是单一地址或多个地址)
4. **报告中需要看的指标**:只分析库存数量?低库存提醒?还是其他?

如果未提供这些细节,我会参考通用需求进行实现。

---

### 脚本实现

下面是一个完整的 Google Apps 脚本:

```javascript
function generateInventoryReport() {
  // 1. 打开电子表格
  const spreadsheetUrl = "https://docs.google.com/spreadsheets/d/your-spreadsheet-id"; // 替换为您的库存表单链接
  const sheet = SpreadsheetApp.openByUrl(spreadsheetUrl).getSheetByName("Sheet1"); // 替换为您的工作表名称

  // 2. 读取表格数据
  const data = sheet.getDataRange().getValues();
  const header = data[0]; // 首行标题
  const rows = data.slice(1); // 数据行

  // 3. 定义关键列索引(参考 headers 找到“产品名称”、“库存数量”等信息)
  const productNameIndex = header.indexOf("Product Name"); // 替换为列标题
  const stockQuantityIndex = header.indexOf("Stock Quantity");
  const stockChangeIndex = header.indexOf("Stock Change");

  // 4. 分析库存变化趋势
  let lowStockItems = [];
  let decreasingStockItems = [];

  rows.forEach(row => {
    const productName = row[productNameIndex];
    const stockQuantity = row[stockQuantityIndex];
    const stockChange = row[stockChangeIndex];

    // 检查低库存(低于 10 的产品)
    if (stockQuantity < 10) {
      lowStockItems.push(`${productName}: 库存 ${stockQuantity}`);
    }

    // 检查库存减少的产品
    if (stockChange < 0) {
      decreasingStockItems.push(`${productName}: 减少 ${Math.abs(stockChange)}`);
    }
  });

  // 5. 生成报告内容
  let report = "每日库存报告\n\n";

  if (lowStockItems.length > 0) {
    report += "低库存提醒:\n" + lowStockItems.join("\n") + "\n\n";
  } else {
    report += "所有产品库存充足。\n\n";
  }

  if (decreasingStockItems.length > 0) {
    report += "库存减少情况:\n" + decreasingStockItems.join("\n") + "\n\n";
  } else {
    report += "无减少库存的产品。\n\n";
  }

  report += "感谢使用我们的系统!";

  // 6. 定义电子邮件参数
  const recipient = "example@email.com"; // 替换为收件人的电子邮件
  const subject = "每日库存报告";
  const body = report;

  // 7. 发送电子邮件
  GmailApp.sendEmail(recipient, subject, body);

  Logger.log("库存报告已发送!");
}

// 8. 创建每日触发器(手动运行一次即可设置定时任务)
function createDailyTrigger() {
  ScriptApp.newTrigger("generateInventoryReport")
           .timeBased()
           .everyDays(1)
           .atHour(8) // 设置每天早上8点发送报告
           .create();
}
```

---

### 脚本解释

#### 第 1 步:打开 Google Sheets
通过 `SpreadsheetApp.openByUrl()` 打开指定的库存表单,然后获取库存数据所在的工作表。

#### 第 2 步:读取表格数据
`getDataRange().getValues()` 方法返回表格的所有数据(二维数组)。上面我们通过 `slice(1)` 排除标题行,只获取数据部分。

#### 第 3 步:分析数据
我们通过解析数据,识别低库存产品和库存下降的产品:
- 如果库存数量 **低于 10**,会将产品加入 `lowStockItems`。
- 如果库存变化 `Stock Change` 为负数,则认为该产品库存正在减少。

#### 第 4 步:生成报告
拼接一个简单的字符串报告,描述各类库存情况。

#### 第 5 步:发送邮件
利用 `GmailApp.sendEmail()` 方法,通过邮件发送每日库存报告。把邮件收件人替换为实际地址。

#### 第 6 步:每日触发器
使用 `ScriptApp.newTrigger()` 配置脚本的定时运行,让 `generateInventoryReport()` 每日自动执行。

---

### 使用方法
1. 打开 Google Apps 脚本编辑器(在 Google Drive 中点击 `扩展程序 > Apps 脚本`)。
2. 创建一个新的脚本项目,将上述代码粘贴进去。
3. 根据需要替换 `spreadsheetUrl`、工作表名称 (`Sheet1`) 以及邮件地址。
4. 运行一次 `createDailyTrigger()`,创建每日自动触发器。
5. 检查邮件,确认收到每日报告。

---

如果需要进一步修改或增加功能(如增加库存图表生成、发送到多邮件地址等),可以随时告诉我!

示例3

根据您的需求,我们需要一个 Google Apps 脚本来自动化处理学生作业的批改记录,本脚本的功能包括以下几点:

1. 读取 Google Sheets 表格中的学生名单及他们的作业完成情况。
2. 根据完成情况生成批改记录。
3. 将生成的批改记录更新到另一个目标表格中。

以下是实现此功能的 Google Apps 脚本以及详细的解释。

---

### Google Apps 脚本代码:

```javascript
/**
 * 批量管理学生作业批改记录
 *
 * 该脚本从源电子表格中读取学生名单和作业完成情况,
 * 根据这些数据生成批改记录,并将记录写入目标表格中。
 */

function manageAssignmentGrading() {
  // 定义源和目标表格信息
  const sourceSpreadsheetId = "SOURCE_SPREADSHEET_ID"; // 替换为源表格的ID
  const targetSpreadsheetId = "TARGET_SPREADSHEET_ID"; // 替换为目标表格的ID
  const sourceSheetName = "StudentData"; // 源表格中存储学生名单和完成情况的工作表名称
  const targetSheetName = "GradingRecords"; // 目标表格中存储批改记录的工作表名称

  // 打开源表格和目标表格
  const sourceSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetId);
  const targetSpreadsheet = SpreadsheetApp.openById(targetSpreadsheetId);
  const sourceSheet = sourceSpreadsheet.getSheetByName(sourceSheetName);
  const targetSheet = targetSpreadsheet.getSheetByName(targetSheetName);

  // 读取源表格的所有数据,假设第一行是表头
  const sourceData = sourceSheet.getDataRange().getValues();
  const header = sourceData[0]; // 表头
  const studentData = sourceData.slice(1); // 学生数据,从第二行开始

  // 获取批改记录的时间戳
  const currentDate = new Date();
  const formattedDate = Utilities.formatDate(currentDate, Session.getScriptTimeZone(), "yyyy-MM-dd");

  // 准备批改记录数据
  const gradingRecords = studentData.map((row) => {
    const studentName = row[0]; // 假设第一列是学生姓名
    const assignmentStatus = row[1]; // 假设第二列是作业完成情况
    let grade = ""; // 评分初始化

    // 根据完成情况生成评分
    if (assignmentStatus.toLowerCase() === "completed") {
      grade = "A"; // 如果完成,评分为A
    } else if (assignmentStatus.toLowerCase() === "incomplete") {
      grade = "C"; // 如果未完成,评分为C
    } else {
      grade = "B"; // 默认评分为B,适用于其他情况
    }

    // 返回生成的批改记录
    return [studentName, assignmentStatus, grade, formattedDate];
  });

  // 写入到目标表格
  targetSheet.clear(); // 清空目标表格中现有数据
  targetSheet.appendRow(["Student Name", "Assignment Status", "Grade", "Date"]); // 写入表头
  targetSheet.getRange(2, 1, gradingRecords.length, gradingRecords[0].length).setValues(gradingRecords);

  // 通知用户操作完成
  SpreadsheetApp.getUi().alert("批改记录已成功生成并更新到目标表格中!");
}
```

---

### 代码详解:

1. **定义表格 ID 和工作表名称**:
   - `sourceSpreadsheetId` 和 `targetSpreadsheetId` 分别是源表格和目标表格的唯一 ID,需要在脚本中替换成实际的表格 ID。
   - `sourceSheetName` 和 `targetSheetName` 是工作表的名称,分别对应学生数据和批改记录的工作表。

2. **读取数据**:
   - `sourceSheet.getDataRange().getValues()`:从源表格工作表中获取全部数据,包括表头和学生记录。
   - `studentData.slice(1)`:移除第一行表头,只保留学生数据。

3. **生成批改记录**:
   - 遍历学生数据,通过映射 (`map`) 方法基于作业完成情况生成评分。
   - 假设:
     - 完成(`completed`)= A
     - 未完成(`incomplete`)= C
     - 其他情况默认评分为 B。
   - 自动生成时间戳,记录批改的日期。

4. **更新目标表格**:
   - 清空目标工作表中的旧数据,用 `targetSheet.clear()` 方法清除内容。
   - 添加表头和生成的批改记录。

5. **操作完成通知**:
   - 使用 `SpreadsheetApp.getUi().alert()` 方法通知用户操作完成。

---

### 使用方法:

1. 打开 [Google Apps 脚本编辑器](https://script.google.com/)。
2. 创建一个新项目,将以上代码粘贴进去。
3. 在脚本中将 `SOURCE_SPREADSHEET_ID` 和 `TARGET_SPREADSHEET_ID` 替换为您的实际表格 ID(可从 Google Sheets 链接中获取)。
4. 保存脚本,给定一个名称,如 "学生作业批改记录管理"。
5. 点击运行按钮首次执行脚本,并根据弹出的授权提示授权脚本访问您的 Google Drive。
6. 每次需要处理批改记录时,只需运行 `manageAssignmentGrading` 函数,脚本会自动生成批改记录并更新到目标表格中。

---

如果您有其他需求或需调整逻辑,请随时告诉我!

适用用户

办公室员工

简化日常任务,无需编程经验即可创建自动化脚本,轻松实现批量发送邮件或数据处理。

小微企业主

用脚本自动化管理数据、生成报表,提高业务运营效率,节省人工与时间成本。

教育工作者

批量管理学生档案、发送通知或组织日程,让教学管理更高效、更智能化。

技术爱好者

满足脚本开发探索需求,学习如何实现个人或团队自动化解决方案,快速提升技能。

自由职业者

高效完成数据输入、文档整理等重复性工作,专注于更具价值的客户服务或创意开发。

解决的问题

通过生成定制化的Google Apps脚本,帮助用户快速实现办公流程的自动化、提高工作效率,降低操作复杂度,满足特定场景的需求。

特征总结

快速生成Google Apps脚本,满足多种自动化需求,让工作更高效。
智能解析用户任务描述,即使需求模糊,也能准确完成输入信息的收集与脚本生成。
内置脚本解释功能,自动附带详细注释,让用户轻松理解代码逻辑。
支持高度定制化,根据用户业务需求生成个性化脚本,更贴合实际场景。
覆盖Gmail、Google Sheets等多个Google生态工具,一体化解决效率问题。
无需编程背景的小白福音,一键开发,快速上手自动化。
适合复杂任务场景,帮您完成批量操作、数据处理等繁琐工作。
生成内容清晰规范,每部分代码作用清楚,降低用户学习与使用门槛。
节省时间与精力,高效解决企业日常办公流程中的重复性操作问题。

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

免费
请先免费试用,确保满足您的需求。

您购买后可以获得什么

获得完整提示词模板
- 共 76 tokens
- 1 个可调节参数
{ 任务需求描述 }
自动加入"我的提示词库"
- 获得提示词优化器支持
- 版本化管理支持
获得社区共享的应用案例
限时免费

不要错过!

免费获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59
摄影
免费 原价:20 限时
试用