You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何过滤Google Workspace Schema日志输出,提取指定字段?

改造后的Google Apps Script函数实现

核心功能说明

  • 自动过滤fieldId、kind、etag三个冗余字段
  • 支持两种输出模式:
    • 模式1:保留键值对结构(用于查看完整字段映射)
    • 模式2:仅提取字段值并按指定表头排序(直接写入预定义表头的Google Sheet)

完整代码实现

function listSchema() {
  // 1. 获取域内所有Schema数据
  const schemas = AdminDirectory.Schemas.list('my_customer').schemas;
  if (!schemas || schemas.length === 0) {
    Logger.log('未找到任何Schema数据');
    return;
  }

  // 2. 定义需要排除的字段
  const excludedFields = new Set(['fieldId', 'kind', 'etag']);

  // --- 模式1:过滤后保留键值对结构,输出到Logger ---
  const filteredSchemasWithKeys = schemas.map(schema => {
    const filtered = {};
    Object.keys(schema).forEach(key => {
      if (!excludedFields.has(key)) {
        filtered[key] = schema[key];
      }
    });
    return filtered;
  });
  Logger.log('过滤后的键值对Schema数据:', filteredSchemasWithKeys);

  // --- 模式2:仅提取字段值,按Sheet表头排序(用于写入Sheet)---
  // 替换为你的Sheet ID和表头所在的工作表名称
  const sheetId = '你的Sheet ID';
  const sheetName = '表头所在工作表';
  const sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName);
  
  // 获取表头行(假设表头在第1行)
  const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
  
  // 提取值并按表头顺序排列
  const schemaValues = schemas.map(schema => {
    return headers.map(header => {
      // 若表头字段存在则返回对应值,不存在返回空字符串
      return schema[header] || '';
    });
  });

  // 将数据写入Sheet(从第2行开始)
  if (schemaValues.length > 0) {
    sheet.getRange(2, 1, schemaValues.length, headers.length).setValues(schemaValues);
    Logger.log('数据已成功写入Sheet');
  }
}

关键细节解释

  1. 字段过滤逻辑:

    • 使用Set存储需要排除的字段,提升查找效率
    • 遍历每个Schema对象的键,仅保留不在排除列表中的键值对
  2. 表头匹配与值排序:

    • 先读取Sheet的表头行,确保输出值的顺序与表头完全一致
    • 遍历表头中的每个字段,从Schema对象中提取对应值,不存在则返回空字符串,避免写入报错
  3. 两种模式切换:

    • 若只需查看过滤后的键值对,可注释掉模式2的代码
    • 若只需写入Sheet,可注释掉模式1的Logger.log部分

使用注意事项

  • 确保已启用Admin Directory API(在Google Apps Script编辑器的「资源」→「高级Google服务」中开启)
  • 替换代码中的sheetId和sheetName为你的实际Sheet信息
  • 表头字段名必须与Schema的键完全一致(区分大小写)

内容的提问来源于stack exchange,提问作者Nuno Miguel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 08:25:26